{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TensorSensor\n",
    "\n",
    "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/parrt/tensor-sensor/blob/master/testing/examples.ipynb)\n",
    "\n",
    "TensorSensor clarifies exceptions by augmenting messages and visualizing Python code to indicate the shape of tensor variables (see figure to the right for a teaser). It works with Tensorflow, PyTorch, JAX, and Numpy, as well as higher-level libraries like Keras and fastai.  Besides trapping exceptions, TensorSensor can provide visualizations of code that executes without exception. You can also see the complete expression tree computation and the shapes of self-expression partial results.\n",
    "\n",
    "See article [Clarifying exceptions and visualizing tensor operations in deep learning code](https://explained.ai/tensor-sensor/index.html) at [explained.ai](https://explained.ai)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Clarifying the cause of tensor exceptions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "%config InlineBackend.figure_format = 'retina'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "! pip install -q tensorflow\n",
    "! pip install -q jax jaxlib\n",
    "! pip install -q numpy\n",
    "! pip install -q torch\n",
    "! pip install -q scikit-learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "! pip install -q tensor-sensor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'1.0'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import tsensor\n",
    "tsensor.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TensorFlow"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "W = tf.constant([[1, 2], [3, 4]])\n",
    "b = tf.reshape(tf.constant([[9, 10]]), (2, 1))\n",
    "x = tf.reshape(tf.constant([[8, 5, 7]]), (3, 1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"109.215006pt\" height=\"53.436659pt\" viewBox=\"0 0 109.215006 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:12.981006</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 109.215006 53.436659  L 109.215006 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 18.17406 45.675941  L 23.39694 45.675941  L 23.39694 23.415521  L 18.17406 23.415521  z \" clip-path=\"url(#pb7a7b39361)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 65.38086 45.675941  L 70.60374 45.675941  L 70.60374 23.415521  L 65.38086 23.415521  z \" clip-path=\"url(#pb7a7b39361)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278  L 24.70266 13.688278  \" clip-path=\"url(#pb7a7b39361)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 64.07514 13.688278  L 71.90946 13.688278  \" clip-path=\"url(#pb7a7b39361)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(64.728 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(81.8028 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- * -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(88.3314 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2a\" d=\"M 3334 3897  L 2216 3291  L 3334 2681  L 3156 2375  L 2106 3009  L 2106 1831  L 1747 1831  L 1747 3009  L 697 2375  L 519 2681  L 1638 3291  L 519 3897  L 697 4206  L 1747 3572  L 1747 4750  L 2106 4750  L 2106 3572  L 3156 4206  L 3334 3897  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(94.86 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(16.38531 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 3 -->\n",
       "    <g transform=\"translate(63.59211 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-33\" d=\"M 269 1209  L 831 1284  Q 928 806 1161 595  Q 1394 384 1728 384  Q 2125 384 2398 659  Q 2672 934 2672 1341  Q 2672 1728 2419 1979  Q 2166 2231 1775 2231  Q 1616 2231 1378 2169  L 1441 2663  Q 1497 2656 1531 2656  Q 1891 2656 2178 2843  Q 2466 3031 2466 3422  Q 2466 3731 2256 3934  Q 2047 4138 1716 4138  Q 1388 4138 1169 3931  Q 950 3725 888 3313  L 325 3413  Q 428 3978 793 4289  Q 1159 4600 1703 4600  Q 2078 4600 2393 4439  Q 2709 4278 2876 4000  Q 3044 3722 3044 3409  Q 3044 3113 2884 2869  Q 2725 2625 2413 2481  Q 2819 2388 3044 2092  Q 3269 1797 3269 1353  Q 3269 753 2831 336  Q 2394 -81 1725 -81  Q 1122 -81 723 278  Q 325 638 269 1209  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(65.489878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(54.8673 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pb7a7b39361\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"107.9172\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "tensorflow says: Incompatible shapes: [2,1] vs. [3,1] [Op:AddV2]\n",
      "\n",
      "tsensor adds: Cause: + on tensor operand b w/shape (2, 1) and operand x * 3 w/shape (3, 1)\n"
     ]
    }
   ],
   "source": [
    "try: # try-except prevents exception from stopping the flow of this notebook\n",
    "    with tsensor.clarify():\n",
    "        res = x * 3\n",
    "        res = tf.matmul(W, b)\n",
    "        b + x * 3\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"tensorflow says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"109.215006pt\" height=\"53.436659pt\" viewBox=\"0 0 109.215006 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:13.114080</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 109.215006 53.436659  L 109.215006 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 18.17406 45.675941  L 23.39694 45.675941  L 23.39694 23.415521  L 18.17406 23.415521  z \" clip-path=\"url(#pcef221bd04)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 65.38086 45.675941  L 70.60374 45.675941  L 70.60374 23.415521  L 65.38086 23.415521  z \" clip-path=\"url(#pcef221bd04)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278  L 24.70266 13.688278  \" clip-path=\"url(#pcef221bd04)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 64.07514 13.688278  L 71.90946 13.688278  \" clip-path=\"url(#pcef221bd04)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(64.728 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(81.8028 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- * -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(88.3314 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2a\" d=\"M 3334 3897  L 2216 3291  L 3334 2681  L 3156 2375  L 2106 3009  L 2106 1831  L 1747 1831  L 1747 3009  L 697 2375  L 519 2681  L 1638 3291  L 519 3897  L 697 4206  L 1747 3572  L 1747 4750  L 2106 4750  L 2106 3572  L 3156 4206  L 3334 3897  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(94.86 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(16.38531 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 3 -->\n",
       "    <g transform=\"translate(63.59211 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-33\" d=\"M 269 1209  L 831 1284  Q 928 806 1161 595  Q 1394 384 1728 384  Q 2125 384 2398 659  Q 2672 934 2672 1341  Q 2672 1728 2419 1979  Q 2166 2231 1775 2231  Q 1616 2231 1378 2169  L 1441 2663  Q 1497 2656 1531 2656  Q 1891 2656 2178 2843  Q 2466 3031 2466 3422  Q 2466 3731 2256 3934  Q 2047 4138 1716 4138  Q 1388 4138 1169 3931  Q 950 3725 888 3313  L 325 3413  Q 428 3978 793 4289  Q 1159 4600 1703 4600  Q 2078 4600 2393 4439  Q 2709 4278 2876 4000  Q 3044 3722 3044 3409  Q 3044 3113 2884 2869  Q 2725 2625 2413 2481  Q 2819 2388 3044 2092  Q 3269 1797 3269 1353  Q 3269 753 2831 336  Q 2394 -81 1725 -81  Q 1122 -81 723 278  Q 325 638 269 1209  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(65.489878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(54.8673 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pcef221bd04\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"107.9172\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "tensorflow says: Incompatible shapes: [2,1] vs. [3,1] [Op:AddV2]\n",
      "\n",
      "tsensor adds: Cause: + on tensor operand b w/shape (2, 1) and operand x * 3 w/shape (3, 1)\n"
     ]
    }
   ],
   "source": [
    "def foo(): bar()\n",
    "def bar():\n",
    "    b + x * 3\n",
    "\n",
    "try:\n",
    "    with tsensor.clarify(): # works for any called functions too\n",
    "        foo()\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"tensorflow says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"248.826606pt\" height=\"53.436659pt\" viewBox=\"0 0 248.826606 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:13.265668</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 248.826606 53.436659  L 248.826606 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 40.99905 45.675941  L 63.84915 45.675941  L 63.84915 23.415521  L 40.99905 23.415521  z \" clip-path=\"url(#pb9dc655c64)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 184.12605 45.675941  L 206.97615 45.675941  L 206.97615 23.415521  L 184.12605 23.415521  z \" clip-path=\"url(#pb9dc655c64)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 48.50694 13.688278  L 56.34126 13.688278  \" clip-path=\"url(#pb9dc655c64)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 191.63394 13.688278  L 199.46826 13.688278  \" clip-path=\"url(#pb9dc655c64)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- Y -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-59\" d=\"M 116 4666  L 788 4666  L 1925 2606  L 3059 4666  L 3738 4666  L 2241 2094  L 2241 0  L 1606 0  L 1606 2094  L 116 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-59\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(49.1598 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(71.7588 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.2874 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(84.816 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(91.3446 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- f -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(97.8732 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-66\" d=\"M 3322 4863  L 3322 4384  L 2669 4384  Q 2359 4384 2239 4257  Q 2119 4131 2119 3809  L 2119 3500  L 3322 3500  L 3322 3053  L 2119 3053  L 2119 0  L 1544 0  L 1544 3053  L 609 3053  L 609 3500  L 1544 3500  L 1544 3744  Q 1544 4319 1808 4591  Q 2072 4863 2631 4863  L 3322 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-66\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(104.4018 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.9304 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(117.459 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(123.9876 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- n -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(130.5162 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6e\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 3500  L 1184 3500  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(137.0448 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-73\" d=\"M 3041 3378  L 3041 2816  Q 2794 2959 2544 3031  Q 2294 3103 2034 3103  Q 1644 3103 1451 2976  Q 1259 2850 1259 2591  Q 1259 2356 1403 2240  Q 1547 2125 2119 2016  L 2350 1972  Q 2778 1891 2998 1647  Q 3219 1403 3219 1013  Q 3219 494 2850 201  Q 2481 -91 1825 -91  Q 1566 -91 1281 -36  Q 997 19 666 128  L 666 722  Q 988 556 1281 473  Q 1575 391 1838 391  Q 2219 391 2428 545  Q 2638 700 2638 978  Q 2638 1378 1872 1531  L 1847 1538  L 1631 1581  Q 1134 1678 906 1908  Q 678 2138 678 2534  Q 678 3038 1018 3311  Q 1359 3584 1991 3584  Q 2272 3584 2531 3532  Q 2791 3481 3041 3378  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- p -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(143.5734 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-70\" d=\"M 1172 441  L 1172 -1331  L 594 -1331  L 594 3500  L 1172 3500  L 1172 3053  Q 1316 3313 1555 3448  Q 1794 3584 2106 3584  Q 2741 3584 3102 3093  Q 3463 2603 3463 1734  Q 3463 881 3100 395  Q 2738 -91 2106 -91  Q 1788 -91 1548 45  Q 1309 181 1172 441  z M 2859 1747  Q 2859 2416 2648 2756  Q 2438 3097 2022 3097  Q 1603 3097 1387 2755  Q 1172 2413 1172 1747  Q 1172 1084 1387 740  Q 1603 397 2022 397  Q 2438 397 2648 737  Q 2859 1078 2859 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-70\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(150.102 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(156.6306 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(163.1592 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(169.6878 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- X -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(192.2868 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-58\" d=\"M 269 4666  L 947 4666  L 1972 2906  L 3016 4666  L 3694 4666  L 2297 2472  L 3794 0  L 3116 0  L 1972 2009  L 738 0  L 56 0  L 1619 2472  L 269 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-58\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(214.8858 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(221.4144 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(227.943 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(234.4716 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(241.0002 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- 764 -->\n",
       "    <g transform=\"translate(39.2103 42.052996)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-37\" d=\"M 303 3981  L 303 4522  L 3269 4522  L 3269 4084  Q 2831 3619 2401 2847  Q 1972 2075 1738 1259  Q 1569 684 1522 0  L 944 0  Q 953 541 1156 1306  Q 1359 2072 1739 2783  Q 2119 3494 2547 3981  L 303 3981  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-36\" d=\"M 3184 3459  L 2625 3416  Q 2550 3747 2413 3897  Q 2184 4138 1850 4138  Q 1581 4138 1378 3988  Q 1113 3794 959 3422  Q 806 3050 800 2363  Q 1003 2672 1297 2822  Q 1591 2972 1913 2972  Q 2475 2972 2870 2558  Q 3266 2144 3266 1488  Q 3266 1056 3080 686  Q 2894 316 2569 119  Q 2244 -78 1831 -78  Q 1128 -78 684 439  Q 241 956 241 2144  Q 241 3472 731 4075  Q 1159 4600 1884 4600  Q 2425 4600 2770 4297  Q 3116 3994 3184 3459  z M 888 1484  Q 888 1194 1011 928  Q 1134 663 1356 523  Q 1578 384 1822 384  Q 2178 384 2434 671  Q 2691 959 2691 1453  Q 2691 1928 2437 2201  Q 2184 2475 1800 2475  Q 1419 2475 1153 2201  Q 888 1928 888 1484  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-34\" d=\"M 2069 0  L 2069 1097  L 81 1097  L 81 1613  L 2172 4581  L 2631 4581  L 2631 1613  L 3250 1613  L 3250 1097  L 2631 1097  L 2631 0  L 2069 0  z M 2069 1613  L 2069 3678  L 634 1613  L 2069 1613  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-37\"/>\n",
       "     <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-34\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- 100 -->\n",
       "    <g transform=\"translate(44.916834 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(36.0091 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- 200 -->\n",
       "    <g transform=\"translate(182.3373 42.052996)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- 764 -->\n",
       "    <g transform=\"translate(188.043834 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-37\"/>\n",
       "     <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-34\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(179.1361 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pb9dc655c64\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"247.5288\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "tensorflow says: Matrix size-incompatible: In[0]: [764,100], In[1]: [764,200] [Op:MatMul]\n",
      "\n",
      "tsensor adds: Cause: @ on tensor operand W w/shape (764, 100) and operand tf.transpose(X) w/shape (764, 200)\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf\n",
    "n = 200         # number of instances\n",
    "d = 764         # number of instance features\n",
    "nhidden = 256\n",
    "n_neurons = 100\n",
    "\n",
    "W = tf.random.uniform((d,n_neurons))\n",
    "b = tf.random.uniform((n_neurons,1))\n",
    "X = tf.random.uniform((n,d))\n",
    "try:\n",
    "    with tsensor.clarify():\n",
    "        Y = W @ tf.transpose(X) + b\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"tensorflow says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### JAX\n",
    "\n",
    "JAX actually gives very good shape messages but TensorSensor visualizes the specifics of expression with the problem."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"209.655006pt\" height=\"53.436659pt\" viewBox=\"0 0 209.655006 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:14.285106</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 209.655006 53.436659  L 209.655006 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 93.22785 45.675941  L 116.07795 45.675941  L 116.07795 23.415521  L 93.22785 23.415521  z \" clip-path=\"url(#p66a89dc889)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 153.76806 45.675941  L 158.99094 45.675941  L 158.99094 23.415521  L 153.76806 23.415521  z \" clip-path=\"url(#p66a89dc889)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 100.73574 13.688278  L 108.57006 13.688278  \" clip-path=\"url(#p66a89dc889)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 152.46234 13.688278  L 160.29666 13.688278  \" clip-path=\"url(#p66a89dc889)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- y -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-79\" d=\"M 2681 1125  Q 2538 759 2316 163  Q 2006 -663 1900 -844  Q 1756 -1088 1540 -1209  Q 1325 -1331 1038 -1331  L 575 -1331  L 575 -850  L 916 -850  Q 1169 -850 1312 -703  Q 1456 -556 1678 56  L 325 3500  L 934 3500  L 1972 763  L 2994 3500  L 3603 3500  L 2681 1125  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-79\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- j -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6a\" d=\"M 1875 -63  L 1875 3053  L 884 3053  L 884 3500  L 2450 3500  L 2450 -63  Q 2450 -672 2170 -1001  Q 1891 -1331 1375 -1331  L 581 -1331  L 581 -844  L 1313 -844  Q 1594 -844 1734 -648  Q 1875 -453 1875 -63  z M 1875 4863  L 2450 4863  L 2450 4134  L 1875 4134  L 1875 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- n -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(39.618 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6e\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 3500  L 1184 3500  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- p -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(46.1466 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-70\" d=\"M 1172 441  L 1172 -1331  L 594 -1331  L 594 3500  L 1172 3500  L 1172 3053  Q 1316 3313 1555 3448  Q 1794 3584 2106 3584  Q 2741 3584 3102 3093  Q 3463 2603 3463 1734  Q 3463 881 3100 395  Q 2738 -91 2106 -91  Q 1788 -91 1548 45  Q 1309 181 1172 441  z M 2859 1747  Q 2859 2416 2648 2756  Q 2438 3097 2022 3097  Q 1603 3097 1387 2755  Q 1172 2413 1172 1747  Q 1172 1084 1387 740  Q 1603 397 2022 397  Q 2438 397 2648 737  Q 2859 1078 2859 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-70\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.6752 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(59.2038 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(65.7324 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(72.261 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.7896 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(123.9876 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(130.5162 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(153.1152 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(175.7142 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(182.2428 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(188.7714 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(195.3 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(201.8286 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 5k -->\n",
       "    <g transform=\"translate(91.4391 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-35\" d=\"M 266 1200  L 856 1250  Q 922 819 1161 601  Q 1400 384 1738 384  Q 2144 384 2425 690  Q 2706 997 2706 1503  Q 2706 1984 2436 2262  Q 2166 2541 1728 2541  Q 1456 2541 1237 2417  Q 1019 2294 894 2097  L 366 2166  L 809 4519  L 3088 4519  L 3088 3981  L 1259 3981  L 1013 2750  Q 1425 3038 1878 3038  Q 2478 3038 2890 2622  Q 3303 2206 3303 1553  Q 3303 931 2941 478  Q 2500 -78 1738 -78  Q 1113 -78 717 272  Q 322 622 266 1200  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- 5k -->\n",
       "    <g transform=\"translate(99.900478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(88.2379 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- 5 -->\n",
       "    <g transform=\"translate(151.97931 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(153.877078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(139.9645 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p66a89dc889\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"208.3572\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "JAX says: Incompatible shapes for dot: got (5000, 5000) and (5, 1).\n",
      "\n",
      "tsensor adds: Cause: jnp.dot(W, x) tensor arg W w/shape (5000, 5000), arg x w/shape (5, 1)\n"
     ]
    }
   ],
   "source": [
    "import jax.numpy as jnp\n",
    "from jax import random\n",
    "\n",
    "key = random.PRNGKey(0)\n",
    "\n",
    "size = 5000\n",
    "W = random.normal(key, shape=(size, size)).astype(jnp.float32)\n",
    "x = random.normal(key, shape=(5, 1)).astype(jnp.float32)\n",
    "x = random.normal(key, shape=(5, 1)).astype(jnp.float32)\n",
    "\n",
    "try:\n",
    "    with tsensor.clarify() as cl:\n",
    "        y = jnp.dot(W, x) + b\n",
    "except TypeError as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"JAX says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"209.655006pt\" height=\"53.436659pt\" viewBox=\"0 0 209.655006 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:14.465280</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 209.655006 53.436659  L 209.655006 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 93.22785 45.675941  L 116.07795 45.675941  L 116.07795 23.415521  L 93.22785 23.415521  z \" clip-path=\"url(#p742ee918e1)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 153.76806 45.675941  L 158.99094 45.675941  L 158.99094 23.415521  L 153.76806 23.415521  z \" clip-path=\"url(#p742ee918e1)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 100.73574 13.688278  L 108.57006 13.688278  \" clip-path=\"url(#p742ee918e1)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 152.46234 13.688278  L 160.29666 13.688278  \" clip-path=\"url(#p742ee918e1)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- y -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-79\" d=\"M 2681 1125  Q 2538 759 2316 163  Q 2006 -663 1900 -844  Q 1756 -1088 1540 -1209  Q 1325 -1331 1038 -1331  L 575 -1331  L 575 -850  L 916 -850  Q 1169 -850 1312 -703  Q 1456 -556 1678 56  L 325 3500  L 934 3500  L 1972 763  L 2994 3500  L 3603 3500  L 2681 1125  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-79\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- j -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6a\" d=\"M 1875 -63  L 1875 3053  L 884 3053  L 884 3500  L 2450 3500  L 2450 -63  Q 2450 -672 2170 -1001  Q 1891 -1331 1375 -1331  L 581 -1331  L 581 -844  L 1313 -844  Q 1594 -844 1734 -648  Q 1875 -453 1875 -63  z M 1875 4863  L 2450 4863  L 2450 4134  L 1875 4134  L 1875 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- n -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(39.618 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6e\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 3500  L 1184 3500  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- p -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(46.1466 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-70\" d=\"M 1172 441  L 1172 -1331  L 594 -1331  L 594 3500  L 1172 3500  L 1172 3053  Q 1316 3313 1555 3448  Q 1794 3584 2106 3584  Q 2741 3584 3102 3093  Q 3463 2603 3463 1734  Q 3463 881 3100 395  Q 2738 -91 2106 -91  Q 1788 -91 1548 45  Q 1309 181 1172 441  z M 2859 1747  Q 2859 2416 2648 2756  Q 2438 3097 2022 3097  Q 1603 3097 1387 2755  Q 1172 2413 1172 1747  Q 1172 1084 1387 740  Q 1603 397 2022 397  Q 2438 397 2648 737  Q 2859 1078 2859 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-70\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.6752 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(59.2038 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(65.7324 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(72.261 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.7896 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(123.9876 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(130.5162 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(153.1152 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(175.7142 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(182.2428 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(188.7714 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(195.3 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(201.8286 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 5k -->\n",
       "    <g transform=\"translate(91.4391 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-35\" d=\"M 266 1200  L 856 1250  Q 922 819 1161 601  Q 1400 384 1738 384  Q 2144 384 2425 690  Q 2706 997 2706 1503  Q 2706 1984 2436 2262  Q 2166 2541 1728 2541  Q 1456 2541 1237 2417  Q 1019 2294 894 2097  L 366 2166  L 809 4519  L 3088 4519  L 3088 3981  L 1259 3981  L 1013 2750  Q 1425 3038 1878 3038  Q 2478 3038 2890 2622  Q 3303 2206 3303 1553  Q 3303 931 2941 478  Q 2500 -78 1738 -78  Q 1113 -78 717 272  Q 322 622 266 1200  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- 5k -->\n",
       "    <g transform=\"translate(99.900478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(88.2379 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- 5 -->\n",
       "    <g transform=\"translate(151.97931 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-35\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(153.877078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(139.9645 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p742ee918e1\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"208.3572\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "JAX says: Incompatible shapes for dot: got (5000, 5000) and (5, 1).\n",
      "\n",
      "tsensor adds: Cause: jnp.dot(W, x) tensor arg W w/shape (5000, 5000), arg x w/shape (5, 1)\n"
     ]
    }
   ],
   "source": [
    "try:\n",
    "    with tsensor.clarify() as cl:\n",
    "        y = jnp.dot(W, x) + b\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"JAX says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### NumPy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "W = np.array([[1, 2], [3, 4]])\n",
    "b = np.array([9, 10]).reshape(2, 1)\n",
    "x = np.array([4, 5]).reshape(2, 1)\n",
    "h = np.array([1,2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"252.844206pt\" height=\"53.436659pt\" viewBox=\"0 0 252.844206 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:14.663261</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 252.844206 53.436659  L 252.844206 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 89.98866 45.675941  L 95.21154 45.675941  L 95.21154 23.415521  L 89.98866 23.415521  z \" clip-path=\"url(#pd976e15e7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 124.13826 45.675941  L 129.36114 45.675941  L 129.36114 23.415521  L 124.13826 23.415521  z \" clip-path=\"url(#pd976e15e7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 88.68294 13.688278  L 96.51726 13.688278  \" clip-path=\"url(#pd976e15e7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 122.83254 13.688278  L 130.66686 13.688278  \" clip-path=\"url(#pd976e15e7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- n -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6e\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 3500  L 1184 3500  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- p -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(39.618 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-70\" d=\"M 1172 441  L 1172 -1331  L 594 -1331  L 594 3500  L 1172 3500  L 1172 3053  Q 1316 3313 1555 3448  Q 1794 3584 2106 3584  Q 2741 3584 3102 3093  Q 3463 2603 3463 1734  Q 3463 881 3100 395  Q 2738 -91 2106 -91  Q 1788 -91 1548 45  Q 1309 181 1172 441  z M 2859 1747  Q 2859 2416 2648 2756  Q 2438 3097 2022 3097  Q 1603 3097 1387 2755  Q 1172 2413 1172 1747  Q 1172 1084 1387 740  Q 1603 397 2022 397  Q 2438 397 2648 737  Q 2859 1078 2859 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-70\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(46.1466 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(52.6752 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(59.2038 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(65.7324 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(72.261 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(89.3358 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(106.4106 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(123.4854 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(140.5602 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(147.0888 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(153.6174 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(160.146 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- n -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(166.6746 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- p -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(173.2032 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-70\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(179.7318 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(186.2604 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- y -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(192.789 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-79\" d=\"M 2681 1125  Q 2538 759 2316 163  Q 2006 -663 1900 -844  Q 1756 -1088 1540 -1209  Q 1325 -1331 1038 -1331  L 575 -1331  L 575 -850  L 916 -850  Q 1169 -850 1312 -703  Q 1456 -556 1678 56  L 325 3500  L 934 3500  L 1972 763  L 2994 3500  L 3603 3500  L 2681 1125  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-79\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(199.3176 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(205.8462 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(212.3748 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531  L 3309 531  L 3309 0  L 475 0  L 475 531  Q 1059 1147 1496 1619  Q 1934 2091 2100 2284  Q 2413 2666 2522 2902  Q 2631 3138 2631 3384  Q 2631 3775 2401 3997  Q 2172 4219 1772 4219  Q 1488 4219 1175 4116  Q 863 4013 513 3803  L 513 4441  Q 834 4594 1145 4672  Q 1456 4750 1759 4750  Q 2444 4750 2861 4386  Q 3278 4022 3278 3431  Q 3278 3131 3139 2831  Q 3000 2531 2688 2169  Q 2513 1966 2180 1606  Q 1847 1247 1166 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(218.9034 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(225.432 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(231.9606 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(238.4892 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(245.0178 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(88.19991 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(90.097678 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(79.4751 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(122.34951 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(124.247278 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(113.6247 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pd976e15e7f\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"251.5464\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "PyTorch says: shapes (2,1) and (2,1) not aligned: 1 (dim 1) != 2 (dim 0)\n",
      "\n",
      "tsensor adds: Cause: np.dot(b,b) tensor arg b w/shape (2, 1), arg b w/shape (2, 1)\n"
     ]
    }
   ],
   "source": [
    "try: # try is used just to catch the exception and extract the messages\n",
    "    with tsensor.clarify():\n",
    "        W @ np.dot(b,b) + np.eye(2,2)@x\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"PyTorch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### PyTorch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tsensor\n",
    "import torch\n",
    "\n",
    "W = torch.tensor([[1, 2], [3, 4]])\n",
    "b = torch.tensor([9, 10]).reshape(2, 1)\n",
    "x = torch.tensor([4, 5]).reshape(2, 1)\n",
    "h = torch.tensor([1,2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"318.130206pt\" height=\"53.436659pt\" viewBox=\"0 0 318.130206 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:15.694096</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 318.130206 53.436659  L 318.130206 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 109.57446 45.675941  L 114.79734 45.675941  L 114.79734 23.415521  L 109.57446 23.415521  z \" clip-path=\"url(#p1b9284db39)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 143.72406 45.675941  L 148.94694 45.675941  L 148.94694 23.415521  L 143.72406 23.415521  z \" clip-path=\"url(#p1b9284db39)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 108.26874 13.688278  L 116.10306 13.688278  \" clip-path=\"url(#p1b9284db39)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 142.41834 13.688278  L 150.25266 13.688278  \" clip-path=\"url(#p1b9284db39)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(39.618 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(46.1466 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.6752 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(59.2038 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(65.7324 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(72.261 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.7896 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(85.3182 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(91.8468 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(108.9216 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(125.9964 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(143.0712 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(160.146 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(166.6746 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(173.2032 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(179.7318 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(186.2604 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(192.789 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(199.3176 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(205.8462 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(212.3748 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(218.9034 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(225.432 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- y -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(231.9606 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-79\" d=\"M 2681 1125  Q 2538 759 2316 163  Q 2006 -663 1900 -844  Q 1756 -1088 1540 -1209  Q 1325 -1331 1038 -1331  L 575 -1331  L 575 -850  L 916 -850  Q 1169 -850 1312 -703  Q 1456 -556 1678 56  L 325 3500  L 934 3500  L 1972 763  L 2994 3500  L 3603 3500  L 2681 1125  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-79\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(238.4892 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(245.0178 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(251.5464 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531  L 3309 531  L 3309 0  L 475 0  L 475 531  Q 1059 1147 1496 1619  Q 1934 2091 2100 2284  Q 2413 2666 2522 2902  Q 2631 3138 2631 3384  Q 2631 3775 2401 3997  Q 2172 4219 1772 4219  Q 1488 4219 1175 4116  Q 863 4013 513 3803  L 513 4441  Q 834 4594 1145 4672  Q 1456 4750 1759 4750  Q 2444 4750 2861 4386  Q 3278 4022 3278 3431  Q 3278 3131 3139 2831  Q 3000 2531 2688 2169  Q 2513 1966 2180 1606  Q 1847 1247 1166 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(258.075 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(264.6036 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(271.1322 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(277.6608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(284.1894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(290.718 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(297.2466 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(303.7752 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- z -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(310.3038 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-7a\" d=\"M 709 3506  L 3250 3506  L 3250 2981  L 1241 469  L 3250 469  L 3250 0  L 634 0  L 634 531  L 2644 3047  L 709 3047  L 709 3506  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-7a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(107.78571 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(109.683478 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(99.0609 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(141.93531 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_46\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(143.833078 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_47\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(133.2105 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p1b9284db39\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"316.8324\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "PyTorch says: 1D tensors expected, but got 2D and 2D tensors\n",
      "\n",
      "tsensor adds: Cause: torch.dot(b,b) tensor arg b w/shape [2, 1], arg b w/shape [2, 1]\n"
     ]
    }
   ],
   "source": [
    "try: # try is used just to catch the exception and extract the messages\n",
    "    with tsensor.clarify():\n",
    "        W @ torch.dot(b,b) + torch.eye(2,2)@x + z\n",
    "except BaseException as e:\n",
    "    msgs = e.args[0].split(\"\\n\")\n",
    "    sys.stderr.write(\"PyTorch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"128.800806pt\" height=\"53.436659pt\" viewBox=\"0 0 128.800806 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:15.884420</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 128.800806 53.436659  L 128.800806 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 9.36045 45.675941  L 32.21055 45.675941  L 32.21055 23.415521  L 9.36045 23.415521  z \" clip-path=\"url(#p4242044726)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 69.62445 28.503617  L 92.47455 28.503617  L 92.47455 23.415521  L 69.62445 23.415521  z \" clip-path=\"url(#p4242044726)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278  L 24.70266 13.688278  \" clip-path=\"url(#p4242044726)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 77.13234 13.688278  L 84.96666 13.688278  \" clip-path=\"url(#p4242044726)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(54.1818 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(60.7104 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(77.7852 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(94.86 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(107.9172 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(114.4458 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(120.9744 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(7.5717 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(78.547078 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(67.9245 34.786109)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p4242044726\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"127.503\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "PyTorch says: 1D tensors expected, but got 2D and 1D tensors\n",
      "\n",
      "tsensor adds: Cause: W.dot(h) tensor arg h w/shape [2]\n"
     ]
    }
   ],
   "source": [
    "try:\n",
    "    with tsensor.clarify():\n",
    "        W.dot(h) + x\n",
    "except BaseException as e:\n",
    "    msgs = e.args[0].split(\"\\n\")\n",
    "    sys.stderr.write(\"PyTorch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"109.215006pt\" height=\"53.436659pt\" viewBox=\"0 0 109.215006 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:16.039277</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 109.215006 53.436659  L 109.215006 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 18.17406 45.675941  L 23.39694 45.675941  L 23.39694 23.415521  L 18.17406 23.415521  z \" clip-path=\"url(#pf9e70b1557)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 65.38086 45.675941  L 70.60374 45.675941  L 70.60374 23.415521  L 65.38086 23.415521  z \" clip-path=\"url(#pf9e70b1557)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278  L 24.70266 13.688278  \" clip-path=\"url(#pf9e70b1557)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 64.07514 13.688278  L 71.90946 13.688278  \" clip-path=\"url(#pf9e70b1557)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(64.728 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(81.8028 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- * -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(88.3314 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2a\" d=\"M 3334 3897  L 2216 3291  L 3334 2681  L 3156 2375  L 2106 3009  L 2106 1831  L 1747 1831  L 1747 3009  L 697 2375  L 519 2681  L 1638 3291  L 519 3897  L 697 4206  L 1747 3572  L 1747 4750  L 2106 4750  L 2106 3572  L 3156 4206  L 3334 3897  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(94.86 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(101.3886 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(16.38531 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 3 -->\n",
       "    <g transform=\"translate(63.59211 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-33\" d=\"M 269 1209  L 831 1284  Q 928 806 1161 595  Q 1394 384 1728 384  Q 2125 384 2398 659  Q 2672 934 2672 1341  Q 2672 1728 2419 1979  Q 2166 2231 1775 2231  Q 1616 2231 1378 2169  L 1441 2663  Q 1497 2656 1531 2656  Q 1891 2656 2178 2843  Q 2466 3031 2466 3422  Q 2466 3731 2256 3934  Q 2047 4138 1716 4138  Q 1388 4138 1169 3931  Q 950 3725 888 3313  L 325 3413  Q 428 3978 793 4289  Q 1159 4600 1703 4600  Q 2078 4600 2393 4439  Q 2709 4278 2876 4000  Q 3044 3722 3044 3409  Q 3044 3113 2884 2869  Q 2725 2625 2413 2481  Q 2819 2388 3044 2092  Q 3269 1797 3269 1353  Q 3269 753 2831 336  Q 2394 -81 1725 -81  Q 1122 -81 723 278  Q 325 638 269 1209  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(65.489878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(54.8673 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pf9e70b1557\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"107.9172\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "PyTorch says: The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 0\n",
      "\n",
      "tsensor adds: Cause: + on tensor operand b w/shape [2, 1] and operand x * 3 w/shape [3, 1]\n"
     ]
    }
   ],
   "source": [
    "x = torch.tensor([4, 5, 6]).reshape(3, 1)\n",
    "\n",
    "try:\n",
    "    with tsensor.clarify():\n",
    "        b + x * 3\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"PyTorch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"tsensor adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Display elements"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Greater than 2 dimensions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"144.871206pt\" height=\"61.155779pt\" viewBox=\"0 0 144.871206 61.155779\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:16.210901</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 61.155779  L 144.871206 61.155779  L 144.871206 0  L 0 0  L 0 61.155779  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 13.54545 44.045141  L 36.39555 44.045141  L 36.39555 21.784721  L 13.54545 21.784721  z \" clip-path=\"url(#pd026336f5a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 11.87145 45.675941  L 34.72155 45.675941  L 34.72155 23.415521  L 11.87145 23.415521  z \" clip-path=\"url(#pd026336f5a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 68.78745 44.045141  L 91.63755 44.045141  L 91.63755 21.784721  L 68.78745 21.784721  z \" clip-path=\"url(#pd026336f5a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 67.11345 45.675941  L 89.96355 45.675941  L 89.96355 23.415521  L 67.11345 23.415521  z \" clip-path=\"url(#pd026336f5a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 6.32214 13.688278  L 40.27086 13.688278  \" clip-path=\"url(#pd026336f5a)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 74.62134 13.688278  L 82.45566 13.688278  \" clip-path=\"url(#pd026336f5a)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(39.618 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(46.1466 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.6752 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- X -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(75.2742 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-58\" d=\"M 269 4666  L 947 4666  L 1972 2906  L 3016 4666  L 3694 4666  L 2297 2472  L 3794 0  L 3116 0  L 1972 2009  L 738 0  L 56 0  L 1619 2472  L 269 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-58\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(97.8732 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- i -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(104.4018 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-69\" d=\"M 800 3500  L 2272 3500  L 2272 447  L 3413 447  L 3413 0  L 556 0  L 556 447  L 1697 447  L 1697 3053  L 800 3053  L 800 3500  z M 1697 4863  L 2272 4863  L 2272 4134  L 1697 4134  L 1697 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-69\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.9304 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(117.459 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(123.9876 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(130.5162 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(137.0448 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- 100 -->\n",
       "    <g transform=\"translate(10.0827 42.052996)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- 764 -->\n",
       "    <g transform=\"translate(17.463234 20.697521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-37\" d=\"M 303 3981  L 303 4522  L 3269 4522  L 3269 4084  Q 2831 3619 2401 2847  Q 1972 2075 1738 1259  Q 1569 684 1522 0  L 944 0  Q 953 541 1156 1306  Q 1359 2072 1739 2783  Q 2119 3494 2547 3981  L 303 3981  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-36\" d=\"M 3184 3459  L 2625 3416  Q 2550 3747 2413 3897  Q 2184 4138 1850 4138  Q 1581 4138 1378 3988  Q 1113 3794 959 3422  Q 806 3050 800 2363  Q 1003 2672 1297 2822  Q 1591 2972 1913 2972  Q 2475 2972 2870 2558  Q 3266 2144 3266 1488  Q 3266 1056 3080 686  Q 2894 316 2569 119  Q 2244 -78 1831 -78  Q 1128 -78 684 439  Q 241 956 241 2144  Q 241 3472 731 4075  Q 1159 4600 1884 4600  Q 2425 4600 2770 4297  Q 3116 3994 3184 3459  z M 888 1484  Q 888 1194 1011 928  Q 1134 663 1356 523  Q 1578 384 1822 384  Q 2178 384 2434 671  Q 2691 959 2691 1453  Q 2691 1928 2437 2201  Q 2184 2475 1800 2475  Q 1419 2475 1153 2201  Q 888 1928 888 1484  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-34\" d=\"M 2069 0  L 2069 1097  L 81 1097  L 81 1613  L 2172 4581  L 2631 4581  L 2631 1613  L 3250 1613  L 3250 1097  L 2631 1097  L 2631 0  L 2069 0  z M 2069 1613  L 2069 3678  L 634 1613  L 2069 1613  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-37\"/>\n",
       "     <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-34\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 3 -->\n",
       "    <g transform=\"translate(34.597254 37.960394)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-33\" d=\"M 269 1209  L 831 1284  Q 928 806 1161 595  Q 1394 384 1728 384  Q 2125 384 2398 659  Q 2672 934 2672 1341  Q 2672 1728 2419 1979  Q 2166 2231 1775 2231  Q 1616 2231 1378 2169  L 1441 2663  Q 1497 2656 1531 2656  Q 1891 2656 2178 2843  Q 2466 3031 2466 3422  Q 2466 3731 2256 3934  Q 2047 4138 1716 4138  Q 1388 4138 1169 3931  Q 950 3725 888 3313  L 325 3413  Q 428 3978 793 4289  Q 1159 4600 1703 4600  Q 2078 4600 2393 4439  Q 2709 4278 2876 4000  Q 3044 3722 3044 3409  Q 3044 3113 2884 2869  Q 2725 2625 2413 2481  Q 2819 2388 3044 2092  Q 3269 1797 3269 1353  Q 3269 753 2831 336  Q 2394 -81 1725 -81  Q 1122 -81 723 278  Q 325 638 269 1209  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(6.8815 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- 10 -->\n",
       "    <g transform=\"translate(65.3247 39.550574)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 100 -->\n",
       "    <g transform=\"translate(72.705234 20.697521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- 764 -->\n",
       "    <g transform=\"translate(86.300295 41.499352)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-37\"/>\n",
       "     <use xlink:href=\"#ArialMT-36\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-34\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- $\\cdots\\mathsf{x}$3 -->\n",
       "    <g transform=\"translate(68.8635 53.476972)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-22ef\" d=\"M 740 2363  L 1400 2363  L 1400 1569  L 740 1569  L 740 2363  z M 2868 2363  L 3528 2363  L 3528 1569  L 2868 1569  L 2868 2363  z M 4996 2363  L 5656 2363  L 5656 1569  L 4996 1569  L 4996 2363  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-78\" d=\"M 3513 3500  L 2247 1797  L 3578 0  L 2900 0  L 1881 1375  L 863 0  L 184 0  L 1544 1831  L 300 3500  L 978 3500  L 1906 2253  L 2834 3500  L 3513 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-22ef\" transform=\"translate(0 0.125)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-78\" transform=\"translate(100 0.125)\"/>\n",
       "     <use xlink:href=\"#ArialMT-33\" transform=\"translate(159.179688 0.125)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(62.1235 59.764529)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pd026336f5a\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"143.5734\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_batches, batch_size, d = 10, 100, 764\n",
    "i = 2\n",
    "X = torch.rand(n_batches, batch_size, d, 3)\n",
    "with tsensor.explain():\n",
    "    batch = X[i,:,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Color implies type, transparency implies precision\n",
    "\n",
    "By default, green indicates floating-point, blue indicates integer, and orange indicates complex numbers. The more saturated the color (lower transparency), the higher the precision.\n",
    "\n",
    "Unknown types are gray by default as are unknown precisions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"358.306206pt\" height=\"53.824941pt\" viewBox=\"0 0 358.306206 53.824941\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:16.459486</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.824941  L 358.306206 53.824941  L 358.306206 0  L 0 0  L 0 53.824941  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 14.88465 45.675941  L 37.73475 45.675941  L 37.73475 23.415521  L 14.88465 23.415521  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #a8e1b0; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 134.68446 45.675941  L 139.90734 45.675941  L 139.90734 23.415521  L 134.68446 23.415521  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 185.80005 44.045141  L 208.65015 44.045141  L 208.65015 21.784721  L 185.80005 21.784721  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #fdd66c; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 184.12605 45.675941  L 206.97615 45.675941  L 206.97615 23.415521  L 184.12605 23.415521  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #fdd66c; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 293.60565 45.675941  L 316.45575 45.675941  L 316.45575 23.415521  L 293.60565 23.415521  z \" clip-path=\"url(#p63cc65a611)\" style=\"fill: #efeff0; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#p63cc65a611)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#p63cc65a611)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 133.37874 13.688278  L 141.21306 13.688278  \" clip-path=\"url(#p63cc65a611)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 191.63394 13.688278  L 199.46826 13.688278  \" clip-path=\"url(#p63cc65a611)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 301.11354 13.688278  L 308.94786 13.688278  \" clip-path=\"url(#p63cc65a611)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(134.0316 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(151.1064 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(157.635 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(164.1636 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(192.2868 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.41 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(226.9386 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.4672 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(239.9958 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(246.5244 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.053 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(259.5816 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(266.1102 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(272.6388 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(279.1674 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(301.7664 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(324.3654 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(330.894 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(337.4226 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(343.9512 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(350.4798 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(13.0959 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(21.304856 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(71.3511 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(79.560056 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(132.89571 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(134.793478 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(124.1709 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(182.3373 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(192.220256 20.697521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- 200 -->\n",
       "    <g transform=\"translate(203.312895 41.499352)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- &lt;${\\mathit{complex64}}$&gt; -->\n",
       "    <g transform=\"translate(172.1011 52.354941)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-63\" d=\"M 3431 3366  L 3316 2797  Q 3109 2947 2876 3022  Q 2644 3097 2394 3097  Q 2119 3097 1870 3000  Q 1622 2903 1453 2725  Q 1184 2453 1037 2087  Q 891 1722 891 1331  Q 891 859 1127 628  Q 1363 397 1844 397  Q 2081 397 2348 469  Q 2616 541 2906 684  L 2797 116  Q 2547 13 2283 -39  Q 2019 -91 1741 -91  Q 1044 -91 669 257  Q 294 606 294 1253  Q 294 1797 489 2255  Q 684 2713 1069 3078  Q 1331 3328 1684 3456  Q 2038 3584 2456 3584  Q 2700 3584 2940 3529  Q 3181 3475 3431 3366  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6d\" d=\"M 5747 2113  L 5338 0  L 4763 0  L 5166 2094  Q 5191 2228 5203 2325  Q 5216 2422 5216 2491  Q 5216 2772 5059 2928  Q 4903 3084 4622 3084  Q 4203 3084 3875 2770  Q 3547 2456 3450 1953  L 3066 0  L 2491 0  L 2900 2094  Q 2925 2209 2937 2307  Q 2950 2406 2950 2484  Q 2950 2769 2794 2926  Q 2638 3084 2363 3084  Q 1938 3084 1609 2770  Q 1281 2456 1184 1953  L 800 0  L 225 0  L 909 3500  L 1484 3500  L 1375 2956  Q 1609 3263 1923 3423  Q 2238 3584 2597 3584  Q 2978 3584 3223 3384  Q 3469 3184 3519 2828  Q 3781 3197 4126 3390  Q 4472 3584 4856 3584  Q 5306 3584 5551 3325  Q 5797 3066 5797 2591  Q 5797 2488 5784 2364  Q 5772 2241 5747 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-70\" d=\"M 3175 2156  Q 3175 2616 2975 2859  Q 2775 3103 2400 3103  Q 2144 3103 1911 2972  Q 1678 2841 1497 2591  Q 1319 2344 1212 1994  Q 1106 1644 1106 1300  Q 1106 863 1306 627  Q 1506 391 1875 391  Q 2147 391 2380 519  Q 2613 647 2778 891  Q 2956 1147 3065 1494  Q 3175 1841 3175 2156  z M 1394 2969  Q 1625 3272 1939 3428  Q 2253 3584 2638 3584  Q 3175 3584 3472 3232  Q 3769 2881 3769 2247  Q 3769 1728 3584 1258  Q 3400 788 3053 416  Q 2822 169 2531 39  Q 2241 -91 1919 -91  Q 1547 -91 1294 64  Q 1041 219 916 525  L 556 -1331  L -19 -1331  L 922 3500  L 1497 3500  L 1394 2969  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-65\" d=\"M 3078 2063  Q 3088 2113 3092 2166  Q 3097 2219 3097 2272  Q 3097 2653 2873 2875  Q 2650 3097 2266 3097  Q 1838 3097 1509 2826  Q 1181 2556 1013 2059  L 3078 2063  z M 3578 1613  L 903 1613  Q 884 1494 878 1425  Q 872 1356 872 1306  Q 872 872 1139 634  Q 1406 397 1894 397  Q 2269 397 2603 481  Q 2938 566 3225 728  L 3116 159  Q 2806 34 2476 -28  Q 2147 -91 1806 -91  Q 1078 -91 686 257  Q 294 606 294 1247  Q 294 1794 489 2264  Q 684 2734 1063 3103  Q 1306 3334 1642 3459  Q 1978 3584 2356 3584  Q 2950 3584 3301 3228  Q 3653 2872 3653 2272  Q 3653 2128 3634 1964  Q 3616 1800 3578 1613  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-78\" d=\"M 3841 3500  L 2234 1784  L 3219 0  L 2559 0  L 1819 1388  L 531 0  L -166 0  L 1556 1844  L 641 3500  L 1300 3500  L 1972 2234  L 3144 3500  L 3841 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-63\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(113.378906 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6d\" transform=\"translate(174.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-70\" transform=\"translate(271.972656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(335.449219 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-65\" transform=\"translate(363.232422 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-78\" transform=\"translate(424.755859 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(483.935547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(547.558594 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(611.181641 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(291.8169 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(300.025856 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- &lt;${\\mathit{float16}}$&gt; -->\n",
       "    <g transform=\"translate(288.6157 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p63cc65a611\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"357.0084\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = torch.rand(size=(2, 20), dtype=torch.float64)\n",
    "b = torch.rand(size=(2, 20), dtype=torch.float32)\n",
    "c = torch.rand(size=(2,20,200), dtype=torch.complex64)\n",
    "d = torch.rand(size=(2,20), dtype=torch.float16)\n",
    "x = torch.tensor([4, 5], dtype=torch.int32).reshape(2, 1)\n",
    "\n",
    "with tsensor.explain():\n",
    "    a + b + x + c[:,:,0] + d[:,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You can change the type colors, precisions available, and transparency ranges. Here are the defaults where `'other'` is the catchall for unknown types and precisions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "orangeish = '#FDD66C'\n",
    "limeish = '#A8E1B0'\n",
    "blueish = '#7FA4D3'\n",
    "grey = '#EFEFF0'\n",
    "dtype_colors = {'float':limeish, 'int':blueish, 'complex':orangeish, 'other':grey}\n",
    "dtype_precisions = [32, 64, 128] # hard to see diff if we use [4, 8, 16, 32, 64, 128]\n",
    "dtype_alpha_range = (0.5, 1.0)   # use (0.1, 1.0) if more precision values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For example, here is how to include 16-bit precision for floating-point (normally gray):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"358.306206pt\" height=\"53.824941pt\" viewBox=\"0 0 358.306206 53.824941\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:16.819347</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.824941  L 358.306206 53.824941  L 358.306206 0  L 0 0  L 0 53.824941  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 14.88465 45.675941  L 37.73475 45.675941  L 37.73475 23.415521  L 14.88465 23.415521  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #a8e1b0; fill-opacity: 0.833333; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #a8e1b0; fill-opacity: 0.666667; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 134.68446 45.675941  L 139.90734 45.675941  L 139.90734 23.415521  L 134.68446 23.415521  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #7fa4d3; fill-opacity: 0.666667; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 185.80005 44.045141  L 208.65015 44.045141  L 208.65015 21.784721  L 185.80005 21.784721  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #fdd66c; fill-opacity: 0.833333; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 184.12605 45.675941  L 206.97615 45.675941  L 206.97615 23.415521  L 184.12605 23.415521  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #fdd66c; fill-opacity: 0.833333; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 293.60565 45.675941  L 316.45575 45.675941  L 316.45575 23.415521  L 293.60565 23.415521  z \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 133.37874 13.688278  L 141.21306 13.688278  \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 191.63394 13.688278  L 199.46826 13.688278  \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 301.11354 13.688278  L 308.94786 13.688278  \" clip-path=\"url(#p617eaa2a60)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(134.0316 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(151.1064 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(157.635 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(164.1636 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(192.2868 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.41 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(226.9386 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.4672 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(239.9958 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(246.5244 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.053 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(259.5816 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(266.1102 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(272.6388 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(279.1674 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(301.7664 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(324.3654 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(330.894 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(337.4226 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(343.9512 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(350.4798 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(13.0959 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(21.304856 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(71.3511 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(79.560056 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(132.89571 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(134.793478 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(124.1709 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(182.3373 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(192.220256 20.697521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- 200 -->\n",
       "    <g transform=\"translate(203.312895 41.499352)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- &lt;${\\mathit{complex64}}$&gt; -->\n",
       "    <g transform=\"translate(172.1011 52.354941)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-63\" d=\"M 3431 3366  L 3316 2797  Q 3109 2947 2876 3022  Q 2644 3097 2394 3097  Q 2119 3097 1870 3000  Q 1622 2903 1453 2725  Q 1184 2453 1037 2087  Q 891 1722 891 1331  Q 891 859 1127 628  Q 1363 397 1844 397  Q 2081 397 2348 469  Q 2616 541 2906 684  L 2797 116  Q 2547 13 2283 -39  Q 2019 -91 1741 -91  Q 1044 -91 669 257  Q 294 606 294 1253  Q 294 1797 489 2255  Q 684 2713 1069 3078  Q 1331 3328 1684 3456  Q 2038 3584 2456 3584  Q 2700 3584 2940 3529  Q 3181 3475 3431 3366  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6d\" d=\"M 5747 2113  L 5338 0  L 4763 0  L 5166 2094  Q 5191 2228 5203 2325  Q 5216 2422 5216 2491  Q 5216 2772 5059 2928  Q 4903 3084 4622 3084  Q 4203 3084 3875 2770  Q 3547 2456 3450 1953  L 3066 0  L 2491 0  L 2900 2094  Q 2925 2209 2937 2307  Q 2950 2406 2950 2484  Q 2950 2769 2794 2926  Q 2638 3084 2363 3084  Q 1938 3084 1609 2770  Q 1281 2456 1184 1953  L 800 0  L 225 0  L 909 3500  L 1484 3500  L 1375 2956  Q 1609 3263 1923 3423  Q 2238 3584 2597 3584  Q 2978 3584 3223 3384  Q 3469 3184 3519 2828  Q 3781 3197 4126 3390  Q 4472 3584 4856 3584  Q 5306 3584 5551 3325  Q 5797 3066 5797 2591  Q 5797 2488 5784 2364  Q 5772 2241 5747 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-70\" d=\"M 3175 2156  Q 3175 2616 2975 2859  Q 2775 3103 2400 3103  Q 2144 3103 1911 2972  Q 1678 2841 1497 2591  Q 1319 2344 1212 1994  Q 1106 1644 1106 1300  Q 1106 863 1306 627  Q 1506 391 1875 391  Q 2147 391 2380 519  Q 2613 647 2778 891  Q 2956 1147 3065 1494  Q 3175 1841 3175 2156  z M 1394 2969  Q 1625 3272 1939 3428  Q 2253 3584 2638 3584  Q 3175 3584 3472 3232  Q 3769 2881 3769 2247  Q 3769 1728 3584 1258  Q 3400 788 3053 416  Q 2822 169 2531 39  Q 2241 -91 1919 -91  Q 1547 -91 1294 64  Q 1041 219 916 525  L 556 -1331  L -19 -1331  L 922 3500  L 1497 3500  L 1394 2969  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-65\" d=\"M 3078 2063  Q 3088 2113 3092 2166  Q 3097 2219 3097 2272  Q 3097 2653 2873 2875  Q 2650 3097 2266 3097  Q 1838 3097 1509 2826  Q 1181 2556 1013 2059  L 3078 2063  z M 3578 1613  L 903 1613  Q 884 1494 878 1425  Q 872 1356 872 1306  Q 872 872 1139 634  Q 1406 397 1894 397  Q 2269 397 2603 481  Q 2938 566 3225 728  L 3116 159  Q 2806 34 2476 -28  Q 2147 -91 1806 -91  Q 1078 -91 686 257  Q 294 606 294 1247  Q 294 1794 489 2264  Q 684 2734 1063 3103  Q 1306 3334 1642 3459  Q 1978 3584 2356 3584  Q 2950 3584 3301 3228  Q 3653 2872 3653 2272  Q 3653 2128 3634 1964  Q 3616 1800 3578 1613  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-78\" d=\"M 3841 3500  L 2234 1784  L 3219 0  L 2559 0  L 1819 1388  L 531 0  L -166 0  L 1556 1844  L 641 3500  L 1300 3500  L 1972 2234  L 3144 3500  L 3841 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-63\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(113.378906 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6d\" transform=\"translate(174.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-70\" transform=\"translate(271.972656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(335.449219 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-65\" transform=\"translate(363.232422 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-78\" transform=\"translate(424.755859 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(483.935547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(547.558594 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(611.181641 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(291.8169 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(300.025856 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- &lt;${\\mathit{float16}}$&gt; -->\n",
       "    <g transform=\"translate(288.6157 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p617eaa2a60\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"357.0084\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tsensor.explain(dtype_precisions = [16, 32, 64, 128]):\n",
    "    a + b + x + c[:,:,0] + d[:,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"196.095606pt\" height=\"53.436659pt\" viewBox=\"0 0 196.095606 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:17.334294</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 196.095606 53.436659  L 196.095606 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 14.88465 45.675941  L 37.73475 45.675941  L 37.73475 23.415521  L 14.88465 23.415521  z \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: #a8e1b0; fill-opacity: 0.666667; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 131.39505 45.675941  L 154.24515 45.675941  L 154.24515 23.415521  L 131.39505 23.415521  z \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: #a8e1b0; fill-opacity: 0.833333; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 138.90294 13.688278  L 146.73726 13.688278  \" clip-path=\"url(#pd54f36e83e)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(139.5558 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.1548 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(168.6834 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(181.7406 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.2692 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(13.0959 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(21.304856 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- &lt;${\\mathit{float16}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(71.3511 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(79.560056 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(129.6063 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(137.815256 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(126.4051 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pd54f36e83e\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"194.7978\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = torch.rand(size=(2, 20), dtype=torch.float16)\n",
    "b = torch.rand(size=(2, 20), dtype=torch.float32)\n",
    "c = torch.rand(size=(2, 20), dtype=torch.float64)\n",
    "with tsensor.explain(dtype_precisions = [16, 32, 64, 128]):\n",
    "    a + b + c[:,:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"172.701281pt\" height=\"53.436659pt\" viewBox=\"0 0 172.701281 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:17.562531</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 172.701281 53.436659  L 172.701281 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 8.230781 45.675941  L 31.080881 45.675941  L 31.080881 23.415521  L 8.230781 23.415521  z \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: #7fa4d3; fill-opacity: 0.2; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 53.052131 45.675941  L 75.902231 45.675941  L 75.902231 23.415521  L 53.052131 23.415521  z \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: #7fa4d3; fill-opacity: 0.466667; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 100.258931 45.675941  L 123.109031 45.675941  L 123.109031 23.415521  L 100.258931 23.415521  z \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: #7fa4d3; fill-opacity: 0.733333; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 147.465731 45.675941  L 170.315831 45.675941  L 170.315831 23.415521  L 147.465731 23.415521  z \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: #7fa4d3; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 15.738671 13.688278  L 23.572991 13.688278  \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 60.560021 13.688278  L 68.394341 13.688278  \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 107.766821 13.688278  L 115.601141 13.688278  \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 154.973621 13.688278  L 162.807941 13.688278  \" clip-path=\"url(#p6f34ef6d10)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(16.391531 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(31.080881 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(37.609481 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(44.138081 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(61.212881 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(78.287681 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(84.816281 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(91.344881 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(108.419681 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(125.494481 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(132.023081 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(138.551681 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(155.626481 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(6.442031 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(14.650987 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- &lt;${\\mathit{int8}}$&gt; -->\n",
       "    <g transform=\"translate(8.770831 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-38\" d=\"M 2034 2216  Q 1584 2216 1326 1975  Q 1069 1734 1069 1313  Q 1069 891 1326 650  Q 1584 409 2034 409  Q 2484 409 2743 651  Q 3003 894 3003 1313  Q 3003 1734 2745 1975  Q 2488 2216 2034 2216  z M 1403 2484  Q 997 2584 770 2862  Q 544 3141 544 3541  Q 544 4100 942 4425  Q 1341 4750 2034 4750  Q 2731 4750 3128 4425  Q 3525 4100 3525 3541  Q 3525 3141 3298 2862  Q 3072 2584 2669 2484  Q 3125 2378 3379 2068  Q 3634 1759 3634 1313  Q 3634 634 3220 271  Q 2806 -91 2034 -91  Q 1263 -91 848 271  Q 434 634 434 1313  Q 434 1759 690 2068  Q 947 2378 1403 2484  z M 1172 3481  Q 1172 3119 1398 2916  Q 1625 2713 2034 2713  Q 2441 2713 2670 2916  Q 2900 3119 2900 3481  Q 2900 3844 2670 4047  Q 2441 4250 2034 4250  Q 1625 4250 1398 4047  Q 1172 3844 1172 3481  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-38\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(51.263381 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(59.472338 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- &lt;${\\mathit{int16}}$&gt; -->\n",
       "    <g transform=\"translate(51.352181 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(98.470181 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(106.679137 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(98.558981 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(145.676981 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(153.885937 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(145.765781 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p6f34ef6d10\">\n",
       "   <rect x=\"1.255781\" y=\"5.000271\" width=\"171.4455\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = torch.zeros(size=(2, 20), dtype=torch.int8)\n",
    "b = torch.zeros(size=(2, 20), dtype=torch.int16)\n",
    "c = torch.zeros(size=(2, 20), dtype=torch.int32)\n",
    "d = torch.zeros(size=(2, 20), dtype=torch.int64)\n",
    "with tsensor.explain(dtype_precisions = [8, 16, 32, 64],\n",
    "                     dtype_alpha_range=(0.2,1.0)):\n",
    "    a + b + c + d"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If, like the great [Oliver Zeigermann](https://zeigermann.eu/), you like insane colors, you can pass in a different color mapping:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"358.306206pt\" height=\"53.824941pt\" viewBox=\"0 0 358.306206 53.824941\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:17.853623</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.824941  L 358.306206 53.824941  L 358.306206 0  L 0 0  L 0 53.824941  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 14.88465 45.675941  L 37.73475 45.675941  L 37.73475 23.415521  L 14.88465 23.415521  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #a22396; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #a22396; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 134.68446 45.675941  L 139.90734 45.675941  L 139.90734 23.415521  L 134.68446 23.415521  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #fbff0b; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 185.80005 44.045141  L 208.65015 44.045141  L 208.65015 21.784721  L 185.80005 21.784721  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #37ffa5; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 184.12605 45.675941  L 206.97615 45.675941  L 206.97615 23.415521  L 184.12605 23.415521  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #37ffa5; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 293.60565 45.675941  L 316.45575 45.675941  L 316.45575 23.415521  L 293.60565 23.415521  z \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: #f5b7ef; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 133.37874 13.688278  L 141.21306 13.688278  \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 191.63394 13.688278  L 199.46826 13.688278  \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 301.11354 13.688278  L 308.94786 13.688278  \" clip-path=\"url(#pfcb41002ad)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(134.0316 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(151.1064 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(157.635 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(164.1636 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(192.2868 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.41 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(226.9386 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.4672 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(239.9958 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(246.5244 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.053 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(259.5816 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(266.1102 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(272.6388 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(279.1674 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(301.7664 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(324.3654 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(330.894 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(337.4226 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(343.9512 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(350.4798 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(13.0959 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(21.304856 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(71.3511 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(79.560056 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(132.89571 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(134.793478 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(124.1709 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(182.3373 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(192.220256 20.697521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- 200 -->\n",
       "    <g transform=\"translate(203.312895 41.499352)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"111.230469\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- &lt;${\\mathit{complex64}}$&gt; -->\n",
       "    <g transform=\"translate(172.1011 52.354941)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-63\" d=\"M 3431 3366  L 3316 2797  Q 3109 2947 2876 3022  Q 2644 3097 2394 3097  Q 2119 3097 1870 3000  Q 1622 2903 1453 2725  Q 1184 2453 1037 2087  Q 891 1722 891 1331  Q 891 859 1127 628  Q 1363 397 1844 397  Q 2081 397 2348 469  Q 2616 541 2906 684  L 2797 116  Q 2547 13 2283 -39  Q 2019 -91 1741 -91  Q 1044 -91 669 257  Q 294 606 294 1253  Q 294 1797 489 2255  Q 684 2713 1069 3078  Q 1331 3328 1684 3456  Q 2038 3584 2456 3584  Q 2700 3584 2940 3529  Q 3181 3475 3431 3366  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6d\" d=\"M 5747 2113  L 5338 0  L 4763 0  L 5166 2094  Q 5191 2228 5203 2325  Q 5216 2422 5216 2491  Q 5216 2772 5059 2928  Q 4903 3084 4622 3084  Q 4203 3084 3875 2770  Q 3547 2456 3450 1953  L 3066 0  L 2491 0  L 2900 2094  Q 2925 2209 2937 2307  Q 2950 2406 2950 2484  Q 2950 2769 2794 2926  Q 2638 3084 2363 3084  Q 1938 3084 1609 2770  Q 1281 2456 1184 1953  L 800 0  L 225 0  L 909 3500  L 1484 3500  L 1375 2956  Q 1609 3263 1923 3423  Q 2238 3584 2597 3584  Q 2978 3584 3223 3384  Q 3469 3184 3519 2828  Q 3781 3197 4126 3390  Q 4472 3584 4856 3584  Q 5306 3584 5551 3325  Q 5797 3066 5797 2591  Q 5797 2488 5784 2364  Q 5772 2241 5747 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-70\" d=\"M 3175 2156  Q 3175 2616 2975 2859  Q 2775 3103 2400 3103  Q 2144 3103 1911 2972  Q 1678 2841 1497 2591  Q 1319 2344 1212 1994  Q 1106 1644 1106 1300  Q 1106 863 1306 627  Q 1506 391 1875 391  Q 2147 391 2380 519  Q 2613 647 2778 891  Q 2956 1147 3065 1494  Q 3175 1841 3175 2156  z M 1394 2969  Q 1625 3272 1939 3428  Q 2253 3584 2638 3584  Q 3175 3584 3472 3232  Q 3769 2881 3769 2247  Q 3769 1728 3584 1258  Q 3400 788 3053 416  Q 2822 169 2531 39  Q 2241 -91 1919 -91  Q 1547 -91 1294 64  Q 1041 219 916 525  L 556 -1331  L -19 -1331  L 922 3500  L 1497 3500  L 1394 2969  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-65\" d=\"M 3078 2063  Q 3088 2113 3092 2166  Q 3097 2219 3097 2272  Q 3097 2653 2873 2875  Q 2650 3097 2266 3097  Q 1838 3097 1509 2826  Q 1181 2556 1013 2059  L 3078 2063  z M 3578 1613  L 903 1613  Q 884 1494 878 1425  Q 872 1356 872 1306  Q 872 872 1139 634  Q 1406 397 1894 397  Q 2269 397 2603 481  Q 2938 566 3225 728  L 3116 159  Q 2806 34 2476 -28  Q 2147 -91 1806 -91  Q 1078 -91 686 257  Q 294 606 294 1247  Q 294 1794 489 2264  Q 684 2734 1063 3103  Q 1306 3334 1642 3459  Q 1978 3584 2356 3584  Q 2950 3584 3301 3228  Q 3653 2872 3653 2272  Q 3653 2128 3634 1964  Q 3616 1800 3578 1613  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-78\" d=\"M 3841 3500  L 2234 1784  L 3219 0  L 2559 0  L 1819 1388  L 531 0  L -166 0  L 1556 1844  L 641 3500  L 1300 3500  L 1972 2234  L 3144 3500  L 3841 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-63\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(113.378906 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6d\" transform=\"translate(174.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-70\" transform=\"translate(271.972656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(335.449219 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-65\" transform=\"translate(363.232422 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-78\" transform=\"translate(424.755859 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(483.935547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(547.558594 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(611.181641 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(291.8169 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(300.025856 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- &lt;${\\mathit{float16}}$&gt; -->\n",
       "    <g transform=\"translate(288.6157 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pfcb41002ad\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"357.0084\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = torch.rand(size=(2, 20), dtype=torch.float64)\n",
    "b = torch.rand(size=(2, 20), dtype=torch.float32)\n",
    "c = torch.rand(size=(2,20,200), dtype=torch.complex64)\n",
    "d = torch.rand(size=(2,20), dtype=torch.float16)\n",
    "x = torch.tensor([4, 5], dtype=torch.int32).reshape(2, 1)\n",
    "\n",
    "wow = {'float':'#A22396', 'int':'#FBFF0B', 'complex':'#37FFA5',\n",
    "       'other':'#F5B7EF'}\n",
    "with tsensor.explain(dtype_colors=wow):\n",
    "    a + b + x + c[:,:,0] + d[:,:]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Explaining matrix algebra statements visually"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "W = torch.rand(size=(2000,2000), dtype=torch.float32)\n",
    "b = torch.rand(size=(2000,1))\n",
    "h = torch.rand(size=(1_000_000,)).type(torch.int16)\n",
    "x = torch.rand(size=(2000,1)).type(torch.int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"161.443806pt\" height=\"53.436659pt\" viewBox=\"0 0 161.443806 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.190341</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 161.443806 53.436659  L 161.443806 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 18.17406 45.675941  L 23.39694 45.675941  L 23.39694 23.415521  L 18.17406 23.415521  z \" clip-path=\"url(#p22ca42da7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 137.19546 45.675941  L 142.41834 45.675941  L 142.41834 23.415521  L 137.19546 23.415521  z \" clip-path=\"url(#p22ca42da7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278  L 24.70266 13.688278  \" clip-path=\"url(#p22ca42da7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 135.88974 13.688278  L 143.72406 13.688278  \" clip-path=\"url(#p22ca42da7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(54.1818 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(60.7104 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(67.239 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(73.7676 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(80.2962 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(86.8248 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(93.3534 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(99.882 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- l -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(106.4106 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6c\" d=\"M 1997 1269  Q 1997 881 2139 684  Q 2281 488 2559 488  L 3231 488  L 3231 0  L 2503 0  Q 1988 0 1705 331  Q 1422 663 1422 1269  L 1422 4447  L 500 4447  L 500 4897  L 1997 4897  L 1997 1269  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- u -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(112.9392 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-75\" d=\"M 609 1325  L 609 3494  L 1184 3494  L 1184 1325  Q 1184 853 1351 631  Q 1519 409 1869 409  Q 2275 409 2490 695  Q 2706 981 2706 1516  L 2706 3494  L 3284 3494  L 3284 0  L 2706 0  L 2706 525  Q 2553 222 2289 65  Q 2025 -91 1672 -91  Q 1134 -91 871 261  Q 609 613 609 1325  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-75\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(119.4678 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(136.5426 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(153.6174 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(16.38531 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(135.40671 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(137.304478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(126.6819 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p22ca42da7f\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"160.146\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"434.138406pt\" height=\"53.436659pt\" viewBox=\"0 0 434.138406 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.453999</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659  L 434.138406 53.436659  L 434.138406 0  L 0 0  L 0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 23.69826 45.675941  L 28.92114 45.675941  L 28.92114 23.415521  L 23.69826 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 140.20866 45.675941  L 145.43154 45.675941  L 145.43154 23.415521  L 140.20866 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 241.15086 45.675941  L 246.37374 45.675941  L 246.37374 23.415521  L 241.15086 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 321.22665 28.503617  L 344.07675 28.503617  L 344.07675 23.415521  L 321.22665 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #efeff0; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 401.07645 28.503617  L 423.92655 28.503617  L 423.92655 23.415521  L 401.07645 23.415521  z \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #efeff0; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 138.90294 13.688278  L 146.73726 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 181.08774 13.688278  L 306.43686 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 328.73454 13.688278  L 336.56886 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_6\">\n",
       "    <path d=\"M 408.58434 13.688278  L 416.41866 13.688278  \" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(139.5558 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.1548 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(168.6834 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.212 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(181.7406 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.2692 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(194.7978 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(201.3264 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(207.855 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(214.3836 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- z -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.9122 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-7a\" d=\"M 709 3506  L 3250 3506  L 3250 2981  L 1241 469  L 3250 469  L 3250 0  L 634 0  L 634 531  L 2644 3047  L 709 3047  L 709 3506  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-7a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(227.4408 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.9694 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(240.498 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(247.0266 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-73\" d=\"M 3041 3378  L 3041 2816  Q 2794 2959 2544 3031  Q 2294 3103 2034 3103  Q 1644 3103 1451 2976  Q 1259 2850 1259 2591  Q 1259 2356 1403 2240  Q 1547 2125 2119 2016  L 2350 1972  Q 2778 1891 2998 1647  Q 3219 1403 3219 1013  Q 3219 494 2850 201  Q 2481 -91 1825 -91  Q 1566 -91 1281 -36  Q 997 19 666 128  L 666 722  Q 988 556 1281 473  Q 1575 391 1838 391  Q 2219 391 2428 545  Q 2638 700 2638 978  Q 2638 1378 1872 1531  L 1847 1538  L 1631 1581  Q 1134 1678 906 1908  Q 678 2138 678 2534  Q 678 3038 1018 3311  Q 1359 3584 1991 3584  Q 2272 3584 2531 3532  Q 2791 3481 3041 3378  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.5552 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(260.0838 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531  L 3309 531  L 3309 0  L 475 0  L 475 531  Q 1059 1147 1496 1619  Q 1934 2091 2100 2284  Q 2413 2666 2522 2902  Q 2631 3138 2631 3384  Q 2631 3775 2401 3997  Q 2172 4219 1772 4219  Q 1488 4219 1175 4116  Q 863 4013 513 3803  L 513 4441  Q 834 4594 1145 4672  Q 1456 4750 1759 4750  Q 2444 4750 2861 4386  Q 3278 4022 3278 3431  Q 3278 3131 3139 2831  Q 3000 2531 2688 2169  Q 2513 1966 2180 1606  Q 1847 1247 1166 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(266.6124 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(273.141 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(279.6696 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(286.1982 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(292.7268 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-31\" d=\"M 844 531  L 1825 531  L 1825 4097  L 769 3859  L 769 4434  L 1819 4666  L 2450 4666  L 2450 531  L 3419 531  L 3419 0  L 844 0  L 844 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(299.2554 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(305.784 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(312.3126 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(329.3874 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(346.4622 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(352.9908 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(359.5194 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(366.048 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(372.5766 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(379.1052 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(385.6338 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(392.1624 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(409.2372 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(426.312 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(21.90951 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_46\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(23.807278 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_47\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_48\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(71.3511 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_49\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(79.812478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_50\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_51\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(138.41991 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_52\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(140.317678 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_53\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(126.4051 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_54\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(239.36211 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_55\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(241.259878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_56\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(227.3473 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_57\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(326.400919 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-6d\" d=\"M 422 0  L 422 3319  L 925 3319  L 925 2853  Q 1081 3097 1340 3245  Q 1600 3394 1931 3394  Q 2300 3394 2536 3241  Q 2772 3088 2869 2813  Q 3263 3394 3894 3394  Q 4388 3394 4653 3120  Q 4919 2847 4919 2278  L 4919 0  L 4359 0  L 4359 2091  Q 4359 2428 4304 2576  Q 4250 2725 4106 2815  Q 3963 2906 3769 2906  Q 3419 2906 3187 2673  Q 2956 2441 2956 1928  L 2956 0  L 2394 0  L 2394 2156  Q 2394 2531 2256 2718  Q 2119 2906 1806 2906  Q 1569 2906 1367 2781  Q 1166 2656 1075 2415  Q 984 2175 984 1722  L 984 0  L 422 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_58\">\n",
       "    <!-- &lt;${\\mathit{int16}}$&gt; -->\n",
       "    <g transform=\"translate(319.5267 34.786109)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531  L 1825 531  L 1825 4091  L 703 3866  L 703 4441  L 1819 4666  L 2450 4666  L 2450 531  L 3481 531  L 3481 0  L 794 0  L 794 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_59\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(406.250719 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_60\">\n",
       "    <!-- &lt;${\\mathit{int16}}$&gt; -->\n",
       "    <g transform=\"translate(399.3765 34.786109)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p1f04ae46ed\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"432.8406\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import tsensor\n",
    "with tsensor.explain() as explained:\n",
    "    a = torch.relu(x)\n",
    "    b = W @ b + torch.zeros(2000,1)+(h+3).dot(h)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"161.443806pt\" height=\"53.436659pt\" viewBox=\"0 0 161.443806 53.436659\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.190341</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659 \n",
       "L 161.443806 53.436659 \n",
       "L 161.443806 0 \n",
       "L 0 0 \n",
       "L 0 53.436659 \n",
       "z\n",
       "\" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 18.17406 45.675941 \n",
       "L 23.39694 45.675941 \n",
       "L 23.39694 23.415521 \n",
       "L 18.17406 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p22ca42da7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 137.19546 45.675941 \n",
       "L 142.41834 45.675941 \n",
       "L 142.41834 23.415521 \n",
       "L 137.19546 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p22ca42da7f)\" style=\"fill: #7fa4d3; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 16.86834 13.688278 \n",
       "L 24.70266 13.688278 \n",
       "\" clip-path=\"url(#p22ca42da7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 135.88974 13.688278 \n",
       "L 143.72406 13.688278 \n",
       "\" clip-path=\"url(#p22ca42da7f)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(17.5212 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759 \n",
       "L 2003 1759 \n",
       "Q 1500 1759 1245 1582 \n",
       "Q 991 1406 991 1056 \n",
       "Q 991 741 1181 566 \n",
       "Q 1372 391 1709 391 \n",
       "Q 2184 391 2456 720 \n",
       "Q 2728 1050 2731 1631 \n",
       "L 2731 1759 \n",
       "L 2194 1759 \n",
       "z\n",
       "M 3309 1997 \n",
       "L 3309 0 \n",
       "L 2731 0 \n",
       "L 2731 519 \n",
       "Q 2547 206 2267 57 \n",
       "Q 1988 -91 1588 -91 \n",
       "Q 1053 -91 734 211 \n",
       "Q 416 513 416 1019 \n",
       "Q 416 1603 808 1906 \n",
       "Q 1200 2209 1959 2209 \n",
       "L 2731 2209 \n",
       "L 2731 2300 \n",
       "Q 2728 2719 2518 2908 \n",
       "Q 2309 3097 1850 3097 \n",
       "Q 1556 3097 1256 3012 \n",
       "Q 956 2928 672 2766 \n",
       "L 672 3341 \n",
       "Q 991 3463 1283 3523 \n",
       "Q 1575 3584 1850 3584 \n",
       "Q 2284 3584 2592 3456 \n",
       "Q 2900 3328 3091 3072 \n",
       "Q 3209 2916 3259 2686 \n",
       "Q 3309 2456 3309 1997 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(34.596 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(41.1246 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638 \n",
       "L 3578 1638 \n",
       "L 3578 1100 \n",
       "L 275 1100 \n",
       "L 275 1638 \n",
       "z\n",
       "M 275 2906 \n",
       "L 3578 2906 \n",
       "L 3578 2375 \n",
       "L 275 2375 \n",
       "L 275 2906 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(47.6532 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(54.1818 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494 \n",
       "L 1919 3500 \n",
       "L 3225 3500 \n",
       "L 3225 3053 \n",
       "L 1919 3053 \n",
       "L 1919 1153 \n",
       "Q 1919 766 2066 612 \n",
       "Q 2213 459 2578 459 \n",
       "L 3225 459 \n",
       "L 3225 0 \n",
       "L 2522 0 \n",
       "Q 1875 0 1609 259 \n",
       "Q 1344 519 1344 1153 \n",
       "L 1344 3053 \n",
       "L 409 3053 \n",
       "L 409 3500 \n",
       "L 1344 3500 \n",
       "L 1344 4494 \n",
       "L 1919 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(60.7104 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097 \n",
       "Q 1488 3097 1263 2756 \n",
       "Q 1038 2416 1038 1747 \n",
       "Q 1038 1081 1263 739 \n",
       "Q 1488 397 1925 397 \n",
       "Q 2366 397 2591 739 \n",
       "Q 2816 1081 2816 1747 \n",
       "Q 2816 2416 2591 2756 \n",
       "Q 2366 3097 1925 3097 \n",
       "z\n",
       "M 1925 3584 \n",
       "Q 2653 3584 3039 3112 \n",
       "Q 3425 2641 3425 1747 \n",
       "Q 3425 850 3040 379 \n",
       "Q 2656 -91 1925 -91 \n",
       "Q 1197 -91 812 379 \n",
       "Q 428 850 428 1747 \n",
       "Q 428 2641 812 3112 \n",
       "Q 1197 3584 1925 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(67.239 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778 \n",
       "Q 3425 2922 3234 2987 \n",
       "Q 3044 3053 2816 3053 \n",
       "Q 2278 3053 1993 2715 \n",
       "Q 1709 2378 1709 1741 \n",
       "L 1709 0 \n",
       "L 1131 0 \n",
       "L 1131 3500 \n",
       "L 1709 3500 \n",
       "L 1709 2816 \n",
       "Q 1853 3188 2151 3386 \n",
       "Q 2450 3584 2859 3584 \n",
       "Q 3072 3584 3256 3531 \n",
       "Q 3441 3478 3609 3366 \n",
       "L 3609 2778 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(73.7676 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178 \n",
       "Q 3084 44 2839 -23 \n",
       "Q 2594 -91 2338 -91 \n",
       "Q 1525 -91 1067 396 \n",
       "Q 609 884 609 1747 \n",
       "Q 609 2609 1067 3096 \n",
       "Q 1525 3584 2338 3584 \n",
       "Q 2591 3584 2831 3518 \n",
       "Q 3072 3453 3316 3316 \n",
       "L 3316 2713 \n",
       "Q 3088 2916 2858 3006 \n",
       "Q 2628 3097 2338 3097 \n",
       "Q 1797 3097 1506 2747 \n",
       "Q 1216 2397 1216 1747 \n",
       "Q 1216 1100 1508 748 \n",
       "Q 1800 397 2338 397 \n",
       "Q 2638 397 2875 489 \n",
       "Q 3113 581 3316 775 \n",
       "L 3316 178 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(80.2962 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169 \n",
       "L 3284 0 \n",
       "L 2706 0 \n",
       "L 2706 2169 \n",
       "Q 2706 2641 2540 2862 \n",
       "Q 2375 3084 2022 3084 \n",
       "Q 1619 3084 1401 2798 \n",
       "Q 1184 2513 1184 1978 \n",
       "L 1184 0 \n",
       "L 609 0 \n",
       "L 609 4863 \n",
       "L 1184 4863 \n",
       "L 1184 2975 \n",
       "Q 1338 3275 1600 3429 \n",
       "Q 1863 3584 2222 3584 \n",
       "Q 2756 3584 3020 3232 \n",
       "Q 3284 2881 3284 2169 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(86.8248 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953 \n",
       "L 2316 953 \n",
       "L 2316 0 \n",
       "L 1528 0 \n",
       "L 1528 953 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(93.3534 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(99.882 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894 \n",
       "L 3475 1613 \n",
       "L 984 1613 \n",
       "L 984 1594 \n",
       "Q 984 1022 1282 709 \n",
       "Q 1581 397 2125 397 \n",
       "Q 2400 397 2700 484 \n",
       "Q 3000 572 3341 750 \n",
       "L 3341 178 \n",
       "Q 3013 44 2708 -23 \n",
       "Q 2403 -91 2119 -91 \n",
       "Q 1303 -91 843 398 \n",
       "Q 384 888 384 1747 \n",
       "Q 384 2584 834 3084 \n",
       "Q 1284 3584 2034 3584 \n",
       "Q 2703 3584 3089 3131 \n",
       "Q 3475 2678 3475 1894 \n",
       "z\n",
       "M 2900 2063 \n",
       "Q 2888 2569 2661 2833 \n",
       "Q 2434 3097 2009 3097 \n",
       "Q 1594 3097 1325 2822 \n",
       "Q 1056 2547 1006 2059 \n",
       "L 2900 2063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- l -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(106.4106 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6c\" d=\"M 1997 1269 \n",
       "Q 1997 881 2139 684 \n",
       "Q 2281 488 2559 488 \n",
       "L 3231 488 \n",
       "L 3231 0 \n",
       "L 2503 0 \n",
       "Q 1988 0 1705 331 \n",
       "Q 1422 663 1422 1269 \n",
       "L 1422 4447 \n",
       "L 500 4447 \n",
       "L 500 4897 \n",
       "L 1997 4897 \n",
       "L 1997 1269 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- u -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(112.9392 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-75\" d=\"M 609 1325 \n",
       "L 609 3494 \n",
       "L 1184 3494 \n",
       "L 1184 1325 \n",
       "Q 1184 853 1351 631 \n",
       "Q 1519 409 1869 409 \n",
       "Q 2275 409 2490 695 \n",
       "Q 2706 981 2706 1516 \n",
       "L 2706 3494 \n",
       "L 3284 3494 \n",
       "L 3284 0 \n",
       "L 2706 0 \n",
       "L 2706 525 \n",
       "Q 2553 222 2289 65 \n",
       "Q 2025 -91 1672 -91 \n",
       "Q 1134 -91 871 261 \n",
       "Q 609 613 609 1325 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-75\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(119.4678 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856 \n",
       "Q 2350 4144 2145 3436 \n",
       "Q 1941 2728 1941 2009 \n",
       "Q 1941 1294 2145 584 \n",
       "Q 2350 -125 2766 -844 \n",
       "L 2266 -844 \n",
       "Q 1794 -100 1562 604 \n",
       "Q 1331 1309 1331 2009 \n",
       "Q 1331 2706 1562 3412 \n",
       "Q 1794 4119 2266 4856 \n",
       "L 2766 4856 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(136.5426 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500 \n",
       "L 2241 1825 \n",
       "L 3616 0 \n",
       "L 2950 0 \n",
       "L 1925 1403 \n",
       "L 903 0 \n",
       "L 238 0 \n",
       "L 1613 1825 \n",
       "L 359 3500 \n",
       "L 997 3500 \n",
       "L 1925 2234 \n",
       "L 2847 3500 \n",
       "L 3494 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(153.6174 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856 \n",
       "L 1588 4856 \n",
       "Q 2059 4119 2290 3412 \n",
       "Q 2522 2706 2522 2009 \n",
       "Q 2522 1306 2290 600 \n",
       "Q 2059 -106 1588 -844 \n",
       "L 1088 -844 \n",
       "Q 1503 -119 1708 590 \n",
       "Q 1913 1300 1913 2009 \n",
       "Q 1913 2722 1708 3431 \n",
       "Q 1503 4141 1088 4856 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(16.38531 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541 \n",
       "L 3222 0 \n",
       "L 194 0 \n",
       "Q 188 203 259 391 \n",
       "Q 375 700 629 1000 \n",
       "Q 884 1300 1366 1694 \n",
       "Q 2113 2306 2375 2664 \n",
       "Q 2638 3022 2638 3341 \n",
       "Q 2638 3675 2398 3904 \n",
       "Q 2159 4134 1775 4134 \n",
       "Q 1369 4134 1125 3890 \n",
       "Q 881 3647 878 3216 \n",
       "L 300 3275 \n",
       "Q 359 3922 746 4261 \n",
       "Q 1134 4600 1788 4600 \n",
       "Q 2447 4600 2831 4234 \n",
       "Q 3216 3869 3216 3328 \n",
       "Q 3216 3053 3103 2787 \n",
       "Q 2991 2522 2730 2228 \n",
       "Q 2469 1934 1863 1422 \n",
       "Q 1356 997 1212 845 \n",
       "Q 1069 694 975 541 \n",
       "L 3222 541 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0 \n",
       "L 425 4581 \n",
       "L 988 4581 \n",
       "L 988 1969 \n",
       "L 2319 3319 \n",
       "L 3047 3319 \n",
       "L 1778 2088 \n",
       "L 3175 0 \n",
       "L 2481 0 \n",
       "L 1384 1697 \n",
       "L 988 1316 \n",
       "L 988 0 \n",
       "L 425 0 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(18.283078 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0 \n",
       "L 1822 0 \n",
       "L 1822 3584 \n",
       "Q 1619 3391 1289 3197 \n",
       "Q 959 3003 697 2906 \n",
       "L 697 3450 \n",
       "Q 1169 3672 1522 3987 \n",
       "Q 1875 4303 2022 4600 \n",
       "L 2384 4600 \n",
       "L 2384 0 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(7.6605 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003 \n",
       "L 350 2528 \n",
       "L 3384 3809 \n",
       "L 3384 3250 \n",
       "L 978 2263 \n",
       "L 3384 1266 \n",
       "L 3384 706 \n",
       "L 350 2003 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863 \n",
       "L 1747 4863 \n",
       "L 1606 4134 \n",
       "L 1031 4134 \n",
       "L 1172 4863 \n",
       "z\n",
       "M 909 3500 \n",
       "L 1484 3500 \n",
       "L 800 0 \n",
       "L 225 0 \n",
       "L 909 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113 \n",
       "L 3156 0 \n",
       "L 2578 0 \n",
       "L 2988 2091 \n",
       "Q 3016 2238 3031 2350 \n",
       "Q 3047 2463 3047 2528 \n",
       "Q 3047 2791 2881 2937 \n",
       "Q 2716 3084 2419 3084 \n",
       "Q 1956 3084 1622 2776 \n",
       "Q 1288 2469 1184 1941 \n",
       "L 800 0 \n",
       "L 225 0 \n",
       "L 903 3500 \n",
       "L 1478 3500 \n",
       "L 1363 2950 \n",
       "Q 1603 3253 1940 3418 \n",
       "Q 2278 3584 2650 3584 \n",
       "Q 3113 3584 3367 3334 \n",
       "Q 3622 3084 3622 2631 \n",
       "Q 3622 2519 3608 2391 \n",
       "Q 3594 2263 3566 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500 \n",
       "L 2619 3053 \n",
       "L 1472 3053 \n",
       "L 1100 1153 \n",
       "Q 1081 1047 1072 975 \n",
       "Q 1063 903 1063 863 \n",
       "Q 1063 663 1183 572 \n",
       "Q 1303 481 1569 481 \n",
       "L 2150 481 \n",
       "L 2053 0 \n",
       "L 1503 0 \n",
       "Q 991 0 739 200 \n",
       "Q 488 400 488 806 \n",
       "Q 488 878 497 964 \n",
       "Q 506 1050 525 1153 \n",
       "L 897 3053 \n",
       "L 409 3053 \n",
       "L 500 3500 \n",
       "L 978 3500 \n",
       "L 1172 4494 \n",
       "L 1747 4494 \n",
       "L 1556 3500 \n",
       "L 2706 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003 \n",
       "L 350 706 \n",
       "L 350 1266 \n",
       "L 2753 2263 \n",
       "L 350 3250 \n",
       "L 350 3809 \n",
       "L 3384 2528 \n",
       "L 3384 2003 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(135.40671 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(137.304478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- &lt;${\\mathit{int32}}$&gt; -->\n",
       "    <g transform=\"translate(126.6819 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p22ca42da7f\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"160.146\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<tsensor.viz.PyVizView at 0x7f04c45094f0>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "explained.views[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"434.138406pt\" height=\"53.436659pt\" viewBox=\"0 0 434.138406 53.436659\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.453999</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.436659 \n",
       "L 434.138406 53.436659 \n",
       "L 434.138406 0 \n",
       "L 0 0 \n",
       "L 0 53.436659 \n",
       "z\n",
       "\" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 23.69826 45.675941 \n",
       "L 28.92114 45.675941 \n",
       "L 28.92114 23.415521 \n",
       "L 23.69826 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941 \n",
       "L 95.98995 45.675941 \n",
       "L 95.98995 23.415521 \n",
       "L 73.13985 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 140.20866 45.675941 \n",
       "L 145.43154 45.675941 \n",
       "L 145.43154 23.415521 \n",
       "L 140.20866 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 241.15086 45.675941 \n",
       "L 246.37374 45.675941 \n",
       "L 246.37374 23.415521 \n",
       "L 241.15086 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 321.22665 28.503617 \n",
       "L 344.07675 28.503617 \n",
       "L 344.07675 23.415521 \n",
       "L 321.22665 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #efeff0; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 401.07645 28.503617 \n",
       "L 423.92655 28.503617 \n",
       "L 423.92655 23.415521 \n",
       "L 401.07645 23.415521 \n",
       "z\n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: #efeff0; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278 \n",
       "L 30.22686 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278 \n",
       "L 88.48206 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 138.90294 13.688278 \n",
       "L 146.73726 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 181.08774 13.688278 \n",
       "L 306.43686 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 328.73454 13.688278 \n",
       "L 336.56886 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_6\">\n",
       "    <path d=\"M 408.58434 13.688278 \n",
       "L 416.41866 13.688278 \n",
       "\" clip-path=\"url(#p1f04ae46ed)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747 \n",
       "Q 2869 2416 2656 2756 \n",
       "Q 2444 3097 2028 3097 \n",
       "Q 1609 3097 1393 2755 \n",
       "Q 1178 2413 1178 1747 \n",
       "Q 1178 1084 1393 740 \n",
       "Q 1609 397 2028 397 \n",
       "Q 2444 397 2656 737 \n",
       "Q 2869 1078 2869 1747 \n",
       "z\n",
       "M 1178 3053 \n",
       "Q 1316 3309 1558 3446 \n",
       "Q 1800 3584 2119 3584 \n",
       "Q 2750 3584 3112 3098 \n",
       "Q 3475 2613 3475 1759 \n",
       "Q 3475 894 3111 401 \n",
       "Q 2747 -91 2113 -91 \n",
       "Q 1800 -91 1561 45 \n",
       "Q 1322 181 1178 441 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 3053 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638 \n",
       "L 3578 1638 \n",
       "L 3578 1100 \n",
       "L 275 1100 \n",
       "L 275 1638 \n",
       "z\n",
       "M 275 2906 \n",
       "L 3578 2906 \n",
       "L 3578 2375 \n",
       "L 275 2375 \n",
       "L 275 2906 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666 \n",
       "L 616 4666 \n",
       "L 1063 878 \n",
       "L 1594 3384 \n",
       "L 2253 3384 \n",
       "L 2791 872 \n",
       "L 3238 4666 \n",
       "L 3853 4666 \n",
       "L 3156 0 \n",
       "L 2559 0 \n",
       "L 1925 2772 \n",
       "L 1294 0 \n",
       "L 697 0 \n",
       "L 0 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703 \n",
       "Q 3244 2106 3044 2348 \n",
       "Q 2844 2591 2509 2591 \n",
       "Q 2175 2591 1973 2348 \n",
       "Q 1772 2106 1772 1703 \n",
       "Q 1772 1297 1973 1055 \n",
       "Q 2175 813 2509 813 \n",
       "Q 2844 813 3044 1055 \n",
       "Q 3244 1297 3244 1703 \n",
       "z\n",
       "M 3681 422 \n",
       "L 3231 422 \n",
       "L 3231 769 \n",
       "Q 3116 572 2911 465 \n",
       "Q 2706 359 2450 359 \n",
       "Q 1947 359 1617 737 \n",
       "Q 1288 1116 1288 1703 \n",
       "Q 1288 2291 1617 2669 \n",
       "Q 1947 3047 2450 3047 \n",
       "Q 2700 3047 2909 2937 \n",
       "Q 3119 2828 3231 2638 \n",
       "L 3231 2834 \n",
       "Q 3231 3322 2956 3619 \n",
       "Q 2681 3916 2228 3916 \n",
       "Q 1459 3916 1004 3317 \n",
       "Q 550 2719 550 1697 \n",
       "Q 550 669 1065 59 \n",
       "Q 1581 -550 2438 -550 \n",
       "Q 2606 -550 2775 -519 \n",
       "Q 2944 -488 3122 -422 \n",
       "L 3272 -844 \n",
       "Q 3075 -922 2883 -959 \n",
       "Q 2691 -997 2509 -997 \n",
       "Q 1394 -997 739 -269 \n",
       "Q 84 459 84 1697 \n",
       "Q 84 2916 671 3637 \n",
       "Q 1259 4359 2247 4359 \n",
       "Q 2900 4359 3290 3943 \n",
       "Q 3681 3528 3681 2828 \n",
       "L 3681 422 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(139.5558 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.1548 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(168.6834 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659 \n",
       "L 2188 2272 \n",
       "L 3578 2272 \n",
       "L 3578 1741 \n",
       "L 2188 1741 \n",
       "L 2188 353 \n",
       "L 1663 353 \n",
       "L 1663 1741 \n",
       "L 275 1741 \n",
       "L 275 2272 \n",
       "L 1663 2272 \n",
       "L 1663 3659 \n",
       "L 2188 3659 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.212 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(181.7406 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494 \n",
       "L 1919 3500 \n",
       "L 3225 3500 \n",
       "L 3225 3053 \n",
       "L 1919 3053 \n",
       "L 1919 1153 \n",
       "Q 1919 766 2066 612 \n",
       "Q 2213 459 2578 459 \n",
       "L 3225 459 \n",
       "L 3225 0 \n",
       "L 2522 0 \n",
       "Q 1875 0 1609 259 \n",
       "Q 1344 519 1344 1153 \n",
       "L 1344 3053 \n",
       "L 409 3053 \n",
       "L 409 3500 \n",
       "L 1344 3500 \n",
       "L 1344 4494 \n",
       "L 1919 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.2692 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097 \n",
       "Q 1488 3097 1263 2756 \n",
       "Q 1038 2416 1038 1747 \n",
       "Q 1038 1081 1263 739 \n",
       "Q 1488 397 1925 397 \n",
       "Q 2366 397 2591 739 \n",
       "Q 2816 1081 2816 1747 \n",
       "Q 2816 2416 2591 2756 \n",
       "Q 2366 3097 1925 3097 \n",
       "z\n",
       "M 1925 3584 \n",
       "Q 2653 3584 3039 3112 \n",
       "Q 3425 2641 3425 1747 \n",
       "Q 3425 850 3040 379 \n",
       "Q 2656 -91 1925 -91 \n",
       "Q 1197 -91 812 379 \n",
       "Q 428 850 428 1747 \n",
       "Q 428 2641 812 3112 \n",
       "Q 1197 3584 1925 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(194.7978 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778 \n",
       "Q 3425 2922 3234 2987 \n",
       "Q 3044 3053 2816 3053 \n",
       "Q 2278 3053 1993 2715 \n",
       "Q 1709 2378 1709 1741 \n",
       "L 1709 0 \n",
       "L 1131 0 \n",
       "L 1131 3500 \n",
       "L 1709 3500 \n",
       "L 1709 2816 \n",
       "Q 1853 3188 2151 3386 \n",
       "Q 2450 3584 2859 3584 \n",
       "Q 3072 3584 3256 3531 \n",
       "Q 3441 3478 3609 3366 \n",
       "L 3609 2778 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(201.3264 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178 \n",
       "Q 3084 44 2839 -23 \n",
       "Q 2594 -91 2338 -91 \n",
       "Q 1525 -91 1067 396 \n",
       "Q 609 884 609 1747 \n",
       "Q 609 2609 1067 3096 \n",
       "Q 1525 3584 2338 3584 \n",
       "Q 2591 3584 2831 3518 \n",
       "Q 3072 3453 3316 3316 \n",
       "L 3316 2713 \n",
       "Q 3088 2916 2858 3006 \n",
       "Q 2628 3097 2338 3097 \n",
       "Q 1797 3097 1506 2747 \n",
       "Q 1216 2397 1216 1747 \n",
       "Q 1216 1100 1508 748 \n",
       "Q 1800 397 2338 397 \n",
       "Q 2638 397 2875 489 \n",
       "Q 3113 581 3316 775 \n",
       "L 3316 178 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(207.855 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169 \n",
       "L 3284 0 \n",
       "L 2706 0 \n",
       "L 2706 2169 \n",
       "Q 2706 2641 2540 2862 \n",
       "Q 2375 3084 2022 3084 \n",
       "Q 1619 3084 1401 2798 \n",
       "Q 1184 2513 1184 1978 \n",
       "L 1184 0 \n",
       "L 609 0 \n",
       "L 609 4863 \n",
       "L 1184 4863 \n",
       "L 1184 2975 \n",
       "Q 1338 3275 1600 3429 \n",
       "Q 1863 3584 2222 3584 \n",
       "Q 2756 3584 3020 3232 \n",
       "Q 3284 2881 3284 2169 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(214.3836 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953 \n",
       "L 2316 953 \n",
       "L 2316 0 \n",
       "L 1528 0 \n",
       "L 1528 953 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- z -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.9122 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-7a\" d=\"M 709 3506 \n",
       "L 3250 3506 \n",
       "L 3250 2981 \n",
       "L 1241 469 \n",
       "L 3250 469 \n",
       "L 3250 0 \n",
       "L 634 0 \n",
       "L 634 531 \n",
       "L 2644 3047 \n",
       "L 709 3047 \n",
       "L 709 3506 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-7a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(227.4408 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894 \n",
       "L 3475 1613 \n",
       "L 984 1613 \n",
       "L 984 1594 \n",
       "Q 984 1022 1282 709 \n",
       "Q 1581 397 2125 397 \n",
       "Q 2400 397 2700 484 \n",
       "Q 3000 572 3341 750 \n",
       "L 3341 178 \n",
       "Q 3013 44 2708 -23 \n",
       "Q 2403 -91 2119 -91 \n",
       "Q 1303 -91 843 398 \n",
       "Q 384 888 384 1747 \n",
       "Q 384 2584 834 3084 \n",
       "Q 1284 3584 2034 3584 \n",
       "Q 2703 3584 3089 3131 \n",
       "Q 3475 2678 3475 1894 \n",
       "z\n",
       "M 2900 2063 \n",
       "Q 2888 2569 2661 2833 \n",
       "Q 2434 3097 2009 3097 \n",
       "Q 1594 3097 1325 2822 \n",
       "Q 1056 2547 1006 2059 \n",
       "L 2900 2063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.9694 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(240.498 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(247.0266 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-73\" d=\"M 3041 3378 \n",
       "L 3041 2816 \n",
       "Q 2794 2959 2544 3031 \n",
       "Q 2294 3103 2034 3103 \n",
       "Q 1644 3103 1451 2976 \n",
       "Q 1259 2850 1259 2591 \n",
       "Q 1259 2356 1403 2240 \n",
       "Q 1547 2125 2119 2016 \n",
       "L 2350 1972 \n",
       "Q 2778 1891 2998 1647 \n",
       "Q 3219 1403 3219 1013 \n",
       "Q 3219 494 2850 201 \n",
       "Q 2481 -91 1825 -91 \n",
       "Q 1566 -91 1281 -36 \n",
       "Q 997 19 666 128 \n",
       "L 666 722 \n",
       "Q 988 556 1281 473 \n",
       "Q 1575 391 1838 391 \n",
       "Q 2219 391 2428 545 \n",
       "Q 2638 700 2638 978 \n",
       "Q 2638 1378 1872 1531 \n",
       "L 1847 1538 \n",
       "L 1631 1581 \n",
       "Q 1134 1678 906 1908 \n",
       "Q 678 2138 678 2534 \n",
       "Q 678 3038 1018 3311 \n",
       "Q 1359 3584 1991 3584 \n",
       "Q 2272 3584 2531 3532 \n",
       "Q 2791 3481 3041 3378 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.5552 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856 \n",
       "Q 2350 4144 2145 3436 \n",
       "Q 1941 2728 1941 2009 \n",
       "Q 1941 1294 2145 584 \n",
       "Q 2350 -125 2766 -844 \n",
       "L 2266 -844 \n",
       "Q 1794 -100 1562 604 \n",
       "Q 1331 1309 1331 2009 \n",
       "Q 1331 2706 1562 3412 \n",
       "Q 1794 4119 2266 4856 \n",
       "L 2766 4856 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(260.0838 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531 \n",
       "L 3309 531 \n",
       "L 3309 0 \n",
       "L 475 0 \n",
       "L 475 531 \n",
       "Q 1059 1147 1496 1619 \n",
       "Q 1934 2091 2100 2284 \n",
       "Q 2413 2666 2522 2902 \n",
       "Q 2631 3138 2631 3384 \n",
       "Q 2631 3775 2401 3997 \n",
       "Q 2172 4219 1772 4219 \n",
       "Q 1488 4219 1175 4116 \n",
       "Q 863 4013 513 3803 \n",
       "L 513 4441 \n",
       "Q 834 4594 1145 4672 \n",
       "Q 1456 4750 1759 4750 \n",
       "Q 2444 4750 2861 4386 \n",
       "Q 3278 4022 3278 3431 \n",
       "Q 3278 3131 3139 2831 \n",
       "Q 3000 2531 2688 2169 \n",
       "Q 2513 1966 2180 1606 \n",
       "Q 1847 1247 1166 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(266.6124 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344 \n",
       "Q 1509 2516 1629 2641 \n",
       "Q 1750 2766 1919 2766 \n",
       "Q 2094 2766 2219 2641 \n",
       "Q 2344 2516 2344 2344 \n",
       "Q 2344 2169 2220 2047 \n",
       "Q 2097 1925 1919 1925 \n",
       "Q 1744 1925 1626 2044 \n",
       "Q 1509 2163 1509 2344 \n",
       "z\n",
       "M 1925 4250 \n",
       "Q 1484 4250 1267 3775 \n",
       "Q 1050 3300 1050 2328 \n",
       "Q 1050 1359 1267 884 \n",
       "Q 1484 409 1925 409 \n",
       "Q 2369 409 2586 884 \n",
       "Q 2803 1359 2803 2328 \n",
       "Q 2803 3300 2586 3775 \n",
       "Q 2369 4250 1925 4250 \n",
       "z\n",
       "M 1925 4750 \n",
       "Q 2672 4750 3055 4137 \n",
       "Q 3438 3525 3438 2328 \n",
       "Q 3438 1134 3055 521 \n",
       "Q 2672 -91 1925 -91 \n",
       "Q 1178 -91 797 521 \n",
       "Q 416 1134 416 2328 \n",
       "Q 416 3525 797 4137 \n",
       "Q 1178 4750 1925 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(273.141 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(279.6696 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(286.1982 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947 \n",
       "L 2356 947 \n",
       "L 2356 300 \n",
       "L 1741 -897 \n",
       "L 1259 -897 \n",
       "L 1569 300 \n",
       "L 1569 947 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(292.7268 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-31\" d=\"M 844 531 \n",
       "L 1825 531 \n",
       "L 1825 4097 \n",
       "L 769 3859 \n",
       "L 769 4434 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3419 531 \n",
       "L 3419 0 \n",
       "L 844 0 \n",
       "L 844 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(299.2554 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856 \n",
       "L 1588 4856 \n",
       "Q 2059 4119 2290 3412 \n",
       "Q 2522 2706 2522 2009 \n",
       "Q 2522 1306 2290 600 \n",
       "Q 2059 -106 1588 -844 \n",
       "L 1088 -844 \n",
       "Q 1503 -119 1708 590 \n",
       "Q 1913 1300 1913 2009 \n",
       "Q 1913 2722 1708 3431 \n",
       "Q 1503 4141 1088 4856 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(305.784 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(312.3126 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(329.3874 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(346.4622 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(352.9908 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497 \n",
       "Q 2884 2375 3128 2064 \n",
       "Q 3372 1753 3372 1288 \n",
       "Q 3372 644 2939 276 \n",
       "Q 2506 -91 1741 -91 \n",
       "Q 1419 -91 1084 -31 \n",
       "Q 750 28 428 141 \n",
       "L 428 769 \n",
       "Q 747 603 1056 522 \n",
       "Q 1366 441 1672 441 \n",
       "Q 2191 441 2469 675 \n",
       "Q 2747 909 2747 1350 \n",
       "Q 2747 1756 2469 1995 \n",
       "Q 2191 2234 1716 2234 \n",
       "L 1234 2234 \n",
       "L 1234 2753 \n",
       "L 1716 2753 \n",
       "Q 2150 2753 2394 2943 \n",
       "Q 2638 3134 2638 3475 \n",
       "Q 2638 3834 2411 4026 \n",
       "Q 2184 4219 1766 4219 \n",
       "Q 1488 4219 1191 4156 \n",
       "Q 894 4094 569 3969 \n",
       "L 569 4550 \n",
       "Q 947 4650 1242 4700 \n",
       "Q 1538 4750 1766 4750 \n",
       "Q 2447 4750 2855 4408 \n",
       "Q 3263 4066 3263 3500 \n",
       "Q 3263 3116 3048 2859 \n",
       "Q 2834 2603 2425 2497 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(359.5194 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(366.048 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(372.5766 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053 \n",
       "L 2681 4863 \n",
       "L 3256 4863 \n",
       "L 3256 0 \n",
       "L 2681 0 \n",
       "L 2681 441 \n",
       "Q 2538 181 2298 45 \n",
       "Q 2059 -91 1747 -91 \n",
       "Q 1113 -91 748 401 \n",
       "Q 384 894 384 1759 \n",
       "Q 384 2613 750 3098 \n",
       "Q 1116 3584 1747 3584 \n",
       "Q 2063 3584 2303 3448 \n",
       "Q 2544 3313 2681 3053 \n",
       "z\n",
       "M 991 1747 \n",
       "Q 991 1078 1203 737 \n",
       "Q 1416 397 1831 397 \n",
       "Q 2247 397 2464 740 \n",
       "Q 2681 1084 2681 1747 \n",
       "Q 2681 2413 2464 2755 \n",
       "Q 2247 3097 1831 3097 \n",
       "Q 1416 3097 1203 2756 \n",
       "Q 991 2416 991 1747 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(379.1052 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(385.6338 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(392.1624 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(409.2372 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(426.312 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(21.90951 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541 \n",
       "L 3222 0 \n",
       "L 194 0 \n",
       "Q 188 203 259 391 \n",
       "Q 375 700 629 1000 \n",
       "Q 884 1300 1366 1694 \n",
       "Q 2113 2306 2375 2664 \n",
       "Q 2638 3022 2638 3341 \n",
       "Q 2638 3675 2398 3904 \n",
       "Q 2159 4134 1775 4134 \n",
       "Q 1369 4134 1125 3890 \n",
       "Q 881 3647 878 3216 \n",
       "L 300 3275 \n",
       "Q 359 3922 746 4261 \n",
       "Q 1134 4600 1788 4600 \n",
       "Q 2447 4600 2831 4234 \n",
       "Q 3216 3869 3216 3328 \n",
       "Q 3216 3053 3103 2787 \n",
       "Q 2991 2522 2730 2228 \n",
       "Q 2469 1934 1863 1422 \n",
       "Q 1356 997 1212 845 \n",
       "Q 1069 694 975 541 \n",
       "L 3222 541 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0 \n",
       "L 425 4581 \n",
       "L 988 4581 \n",
       "L 988 1969 \n",
       "L 2319 3319 \n",
       "L 3047 3319 \n",
       "L 1778 2088 \n",
       "L 3175 0 \n",
       "L 2481 0 \n",
       "L 1384 1697 \n",
       "L 988 1316 \n",
       "L 988 0 \n",
       "L 425 0 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_46\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(23.807278 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0 \n",
       "L 1822 0 \n",
       "L 1822 3584 \n",
       "Q 1619 3391 1289 3197 \n",
       "Q 959 3003 697 2906 \n",
       "L 697 3450 \n",
       "Q 1169 3672 1522 3987 \n",
       "Q 1875 4303 2022 4600 \n",
       "L 2384 4600 \n",
       "L 2384 0 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_47\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003 \n",
       "L 350 2528 \n",
       "L 3384 3809 \n",
       "L 3384 3250 \n",
       "L 978 2263 \n",
       "L 3384 1266 \n",
       "L 3384 706 \n",
       "L 350 2003 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863 \n",
       "L 2969 4384 \n",
       "L 2419 4384 \n",
       "Q 2106 4384 1964 4261 \n",
       "Q 1822 4138 1753 3809 \n",
       "L 1691 3500 \n",
       "L 2638 3500 \n",
       "L 2553 3053 \n",
       "L 1606 3053 \n",
       "L 1013 0 \n",
       "L 434 0 \n",
       "L 1031 3053 \n",
       "L 481 3053 \n",
       "L 563 3500 \n",
       "L 1113 3500 \n",
       "L 1159 3744 \n",
       "Q 1278 4363 1576 4613 \n",
       "Q 1875 4863 2516 4863 \n",
       "L 3059 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863 \n",
       "L 1747 4863 \n",
       "L 800 0 \n",
       "L 225 0 \n",
       "L 1172 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91 \n",
       "Q 1009 -91 651 289 \n",
       "Q 294 669 294 1325 \n",
       "Q 294 1706 417 2101 \n",
       "Q 541 2497 738 2766 \n",
       "Q 1047 3184 1428 3384 \n",
       "Q 1809 3584 2291 3584 \n",
       "Q 2888 3584 3255 3212 \n",
       "Q 3622 2841 3622 2241 \n",
       "Q 3622 1825 3500 1412 \n",
       "Q 3378 1000 3181 728 \n",
       "Q 2875 309 2494 109 \n",
       "Q 2113 -91 1625 -91 \n",
       "z\n",
       "M 891 1344 \n",
       "Q 891 869 1089 633 \n",
       "Q 1288 397 1691 397 \n",
       "Q 2269 397 2648 901 \n",
       "Q 3028 1406 3028 2181 \n",
       "Q 3028 2634 2825 2865 \n",
       "Q 2622 3097 2228 3097 \n",
       "Q 1903 3097 1650 2945 \n",
       "Q 1397 2794 1197 2484 \n",
       "Q 1050 2253 970 1956 \n",
       "Q 891 1659 891 1344 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997 \n",
       "L 3047 0 \n",
       "L 2472 0 \n",
       "L 2578 531 \n",
       "Q 2325 219 2001 64 \n",
       "Q 1678 -91 1281 -91 \n",
       "Q 834 -91 548 182 \n",
       "Q 263 456 263 884 \n",
       "Q 263 1497 752 1853 \n",
       "Q 1241 2209 2100 2209 \n",
       "L 2900 2209 \n",
       "L 2931 2363 \n",
       "Q 2938 2388 2941 2417 \n",
       "Q 2944 2447 2944 2509 \n",
       "Q 2944 2788 2717 2942 \n",
       "Q 2491 3097 2081 3097 \n",
       "Q 1800 3097 1504 3025 \n",
       "Q 1209 2953 897 2809 \n",
       "L 997 3341 \n",
       "Q 1322 3463 1633 3523 \n",
       "Q 1944 3584 2234 3584 \n",
       "Q 2853 3584 3176 3315 \n",
       "Q 3500 3047 3500 2534 \n",
       "Q 3500 2431 3484 2292 \n",
       "Q 3469 2153 3438 1997 \n",
       "z\n",
       "M 2816 1759 \n",
       "L 2241 1759 \n",
       "Q 1534 1759 1195 1570 \n",
       "Q 856 1381 856 984 \n",
       "Q 856 709 1029 553 \n",
       "Q 1203 397 1509 397 \n",
       "Q 1978 397 2328 733 \n",
       "Q 2678 1069 2791 1631 \n",
       "L 2816 1759 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500 \n",
       "L 2619 3053 \n",
       "L 1472 3053 \n",
       "L 1100 1153 \n",
       "Q 1081 1047 1072 975 \n",
       "Q 1063 903 1063 863 \n",
       "Q 1063 663 1183 572 \n",
       "Q 1303 481 1569 481 \n",
       "L 2150 481 \n",
       "L 2053 0 \n",
       "L 1503 0 \n",
       "Q 991 0 739 200 \n",
       "Q 488 400 488 806 \n",
       "Q 488 878 497 964 \n",
       "Q 506 1050 525 1153 \n",
       "L 897 3053 \n",
       "L 409 3053 \n",
       "L 500 3500 \n",
       "L 978 3500 \n",
       "L 1172 4494 \n",
       "L 1747 4494 \n",
       "L 1556 3500 \n",
       "L 2706 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003 \n",
       "L 350 706 \n",
       "L 350 1266 \n",
       "L 2753 2263 \n",
       "L 350 3250 \n",
       "L 350 3809 \n",
       "L 3384 2528 \n",
       "L 3384 2003 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_48\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(71.3511 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_49\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(79.812478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_50\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_51\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(138.41991 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_52\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(140.317678 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_53\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(126.4051 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_54\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(239.36211 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_55\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(241.259878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_56\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(227.3473 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_57\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(326.400919 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-6d\" d=\"M 422 0 \n",
       "L 422 3319 \n",
       "L 925 3319 \n",
       "L 925 2853 \n",
       "Q 1081 3097 1340 3245 \n",
       "Q 1600 3394 1931 3394 \n",
       "Q 2300 3394 2536 3241 \n",
       "Q 2772 3088 2869 2813 \n",
       "Q 3263 3394 3894 3394 \n",
       "Q 4388 3394 4653 3120 \n",
       "Q 4919 2847 4919 2278 \n",
       "L 4919 0 \n",
       "L 4359 0 \n",
       "L 4359 2091 \n",
       "Q 4359 2428 4304 2576 \n",
       "Q 4250 2725 4106 2815 \n",
       "Q 3963 2906 3769 2906 \n",
       "Q 3419 2906 3187 2673 \n",
       "Q 2956 2441 2956 1928 \n",
       "L 2956 0 \n",
       "L 2394 0 \n",
       "L 2394 2156 \n",
       "Q 2394 2531 2256 2718 \n",
       "Q 2119 2906 1806 2906 \n",
       "Q 1569 2906 1367 2781 \n",
       "Q 1166 2656 1075 2415 \n",
       "Q 984 2175 984 1722 \n",
       "L 984 0 \n",
       "L 422 0 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_58\">\n",
       "    <!-- &lt;${\\mathit{int16}}$&gt; -->\n",
       "    <g transform=\"translate(319.5267 34.786109)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863 \n",
       "L 1747 4863 \n",
       "L 1606 4134 \n",
       "L 1031 4134 \n",
       "L 1172 4863 \n",
       "z\n",
       "M 909 3500 \n",
       "L 1484 3500 \n",
       "L 800 0 \n",
       "L 225 0 \n",
       "L 909 3500 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113 \n",
       "L 3156 0 \n",
       "L 2578 0 \n",
       "L 2988 2091 \n",
       "Q 3016 2238 3031 2350 \n",
       "Q 3047 2463 3047 2528 \n",
       "Q 3047 2791 2881 2937 \n",
       "Q 2716 3084 2419 3084 \n",
       "Q 1956 3084 1622 2776 \n",
       "Q 1288 2469 1184 1941 \n",
       "L 800 0 \n",
       "L 225 0 \n",
       "L 903 3500 \n",
       "L 1478 3500 \n",
       "L 1363 2950 \n",
       "Q 1603 3253 1940 3418 \n",
       "Q 2278 3584 2650 3584 \n",
       "Q 3113 3584 3367 3334 \n",
       "Q 3622 3084 3622 2631 \n",
       "Q 3622 2519 3608 2391 \n",
       "Q 3594 2263 3566 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
       "Q 1688 2584 1439 2293 \n",
       "Q 1191 2003 1191 1497 \n",
       "Q 1191 994 1439 701 \n",
       "Q 1688 409 2113 409 \n",
       "Q 2538 409 2786 701 \n",
       "Q 3034 994 3034 1497 \n",
       "Q 3034 2003 2786 2293 \n",
       "Q 2538 2584 2113 2584 \n",
       "z\n",
       "M 3366 4563 \n",
       "L 3366 3988 \n",
       "Q 3128 4100 2886 4159 \n",
       "Q 2644 4219 2406 4219 \n",
       "Q 1781 4219 1451 3797 \n",
       "Q 1122 3375 1075 2522 \n",
       "Q 1259 2794 1537 2939 \n",
       "Q 1816 3084 2150 3084 \n",
       "Q 2853 3084 3261 2657 \n",
       "Q 3669 2231 3669 1497 \n",
       "Q 3669 778 3244 343 \n",
       "Q 2819 -91 2113 -91 \n",
       "Q 1303 -91 875 529 \n",
       "Q 447 1150 447 2328 \n",
       "Q 447 3434 972 4092 \n",
       "Q 1497 4750 2381 4750 \n",
       "Q 2619 4750 2861 4703 \n",
       "Q 3103 4656 3366 4563 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_59\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(406.250719 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_60\">\n",
       "    <!-- &lt;${\\mathit{int16}}$&gt; -->\n",
       "    <g transform=\"translate(399.3765 34.786109)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p1f04ae46ed\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"432.8406\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<tsensor.viz.PyVizView at 0x7f04c4246070>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "explained.views[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"40.915806pt\" height=\"24.230921pt\" viewBox=\"0 0 40.915806 24.230921\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.705090</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 24.230921  L 40.915806 24.230921  L 40.915806 0  L 0 0  L 0 24.230921  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(33.0894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"457.239606pt\" height=\"61.155779pt\" viewBox=\"0 0 457.239606 61.155779\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:18.919011</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 61.155779  L 457.239606 61.155779  L 457.239606 0  L 0 0  L 0 61.155779  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 49.81266 45.675941  L 55.03554 45.675941  L 55.03554 23.415521  L 49.81266 23.415521  z \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 107.45685 44.045141  L 130.30695 44.045141  L 130.30695 21.784721  L 107.45685 21.784721  z \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 105.78285 45.675941  L 128.63295 45.675941  L 128.63295 23.415521  L 105.78285 23.415521  z \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 225.08046 45.675941  L 230.30334 45.675941  L 230.30334 23.415521  L 225.08046 23.415521  z \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 48.50694 13.688278  L 56.34126 13.688278  \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 106.76214 13.688278  L 127.65366 13.688278  \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 223.77474 13.688278  L 231.60906 13.688278  \" clip-path=\"url(#ped3f9ad96a)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(49.1598 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(71.7588 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.2874 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(84.816 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- g -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(107.415 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-67\" d=\"M 2681 1778  Q 2681 2425 2470 2761  Q 2259 3097 1856 3097  Q 1434 3097 1212 2761  Q 991 2425 991 1778  Q 991 1131 1214 792  Q 1438 453 1863 453  Q 2259 453 2470 793  Q 2681 1134 2681 1778  z M 3256 225  Q 3256 -563 2884 -969  Q 2513 -1375 1791 -1375  Q 1553 -1375 1293 -1331  Q 1034 -1288 775 -1203  L 775 -634  Q 1081 -778 1331 -847  Q 1581 -916 1791 -916  Q 2256 -916 2468 -662  Q 2681 -409 2681 141  L 2681 166  L 2681 556  Q 2544 263 2306 119  Q 2069 -25 1728 -25  Q 1116 -25 750 465  Q 384 956 384 1778  Q 384 2603 750 3093  Q 1116 3584 1728 3584  Q 2066 3584 2300 3450  Q 2534 3316 2681 3034  L 2681 3488  L 3256 3488  L 3256 225  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-67\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(113.9436 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(120.4722 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(143.0712 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(149.5998 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(156.1284 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.657 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(169.1856 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.7142 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(182.2428 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.7714 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-31\" d=\"M 844 531  L 1825 531  L 1825 4097  L 769 3859  L 769 4434  L 1819 4666  L 2450 4666  L 2450 531  L 3419 531  L 3419 0  L 844 0  L 844 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(195.3 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(201.8286 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(224.4276 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(247.0266 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(253.5552 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(260.0838 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(266.6124 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(273.141 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(279.6696 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(286.1982 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- z -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(292.7268 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-7a\" d=\"M 709 3506  L 3250 3506  L 3250 2981  L 1241 469  L 3250 469  L 3250 0  L 634 0  L 634 531  L 2644 3047  L 709 3047  L 709 3506  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-7a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(299.2554 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(305.784 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(312.3126 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(318.8412 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-73\" d=\"M 3041 3378  L 3041 2816  Q 2794 2959 2544 3031  Q 2294 3103 2034 3103  Q 1644 3103 1451 2976  Q 1259 2850 1259 2591  Q 1259 2356 1403 2240  Q 1547 2125 2119 2016  L 2350 1972  Q 2778 1891 2998 1647  Q 3219 1403 3219 1013  Q 3219 494 2850 201  Q 2481 -91 1825 -91  Q 1566 -91 1281 -36  Q 997 19 666 128  L 666 722  Q 988 556 1281 473  Q 1575 391 1838 391  Q 2219 391 2428 545  Q 2638 700 2638 978  Q 2638 1378 1872 1531  L 1847 1538  L 1631 1581  Q 1134 1678 906 1908  Q 678 2138 678 2534  Q 678 3038 1018 3311  Q 1359 3584 1991 3584  Q 2272 3584 2531 3532  Q 2791 3481 3041 3378  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(325.3698 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(331.8984 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531  L 3309 531  L 3309 0  L 475 0  L 475 531  Q 1059 1147 1496 1619  Q 1934 2091 2100 2284  Q 2413 2666 2522 2902  Q 2631 3138 2631 3384  Q 2631 3775 2401 3997  Q 2172 4219 1772 4219  Q 1488 4219 1175 4116  Q 863 4013 513 3803  L 513 4441  Q 834 4594 1145 4672  Q 1456 4750 1759 4750  Q 2444 4750 2861 4386  Q 3278 4022 3278 3431  Q 3278 3131 3139 2831  Q 3000 2531 2688 2169  Q 2513 1966 2180 1606  Q 1847 1247 1166 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(338.427 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(344.9556 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(351.4842 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(358.0128 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(364.5414 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(371.07 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(377.5986 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(384.1272 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(390.6558 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_46\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(397.1844 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_47\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(403.713 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_48\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(410.2416 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_49\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(416.7702 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_50\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(423.2988 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_51\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(429.8274 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_52\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(436.356 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_53\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(442.8846 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_54\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(449.4132 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_55\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(48.02391 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_56\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(49.921678 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_57\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(36.0091 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_58\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(103.9941 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_59\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(113.877056 20.697521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_60\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(126.917664 39.551384)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_61\">\n",
       "    <!-- $\\cdots\\mathsf{x}$10 -->\n",
       "    <g transform=\"translate(105.0129 53.476972)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-22ef\" d=\"M 740 2363  L 1400 2363  L 1400 1569  L 740 1569  L 740 2363  z M 2868 2363  L 3528 2363  L 3528 1569  L 2868 1569  L 2868 2363  z M 4996 2363  L 5656 2363  L 5656 1569  L 4996 1569  L 4996 2363  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-78\" d=\"M 3513 3500  L 2247 1797  L 3578 0  L 2900 0  L 1881 1375  L 863 0  L 184 0  L 1544 1831  L 300 3500  L 978 3500  L 1906 2253  L 2834 3500  L 3513 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-22ef\" transform=\"translate(0 0.125)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-78\" transform=\"translate(100 0.125)\"/>\n",
       "     <use xlink:href=\"#ArialMT-31\" transform=\"translate(159.179688 0.125)\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" transform=\"translate(214.794922 0.125)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_62\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(100.7929 59.764529)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_63\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(223.29171 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_64\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(225.189478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_65\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(211.2769 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"ped3f9ad96a\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"455.9418\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "torch says: The size of tensor a (2000) must match the size of tensor b (20) at non-singleton dimension 0\n",
      "\n",
      "torch adds: Cause: + on tensor operand b w/shape [2000, 1] and operand g.W[0,:,:,1]@b w/shape [20, 1]\n"
     ]
    }
   ],
   "source": [
    "class GRU: # fake random junk\n",
    "    def __init__(self):\n",
    "        self.W = torch.rand(size=(2,20,2000,10))\n",
    "        self.b = torch.rand(size=(20,1))\n",
    "\n",
    "# W = torch.tensor([[1, 2], [3, 4]])\n",
    "b = torch.rand(size=(2000,1))\n",
    "h = torch.rand(size=(1_000_000,2))\n",
    "\n",
    "g = GRU()\n",
    "try:\n",
    "    with tsensor.explain():\n",
    "        a = 3\n",
    "        a = b + g.W[0,:,:,1]@b+torch.zeros(200,1)+(h+3).dot(h)\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"torch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"torch adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"457.239606pt\" height=\"61.155779pt\" viewBox=\"0 0 457.239606 61.155779\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:19.337037</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 61.155779  L 457.239606 61.155779  L 457.239606 0  L 0 0  L 0 61.155779  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 49.81266 45.675941  L 55.03554 45.675941  L 55.03554 23.415521  L 49.81266 23.415521  z \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 107.45685 44.045141  L 130.30695 44.045141  L 130.30695 21.784721  L 107.45685 21.784721  z \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 105.78285 45.675941  L 128.63295 45.675941  L 128.63295 23.415521  L 105.78285 23.415521  z \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 225.08046 45.675941  L 230.30334 45.675941  L 230.30334 23.415521  L 225.08046 23.415521  z \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 48.50694 13.688278  L 56.34126 13.688278  \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 106.76214 13.688278  L 127.65366 13.688278  \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 223.77474 13.688278  L 231.60906 13.688278  \" clip-path=\"url(#pdf2d9d14e6)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- a -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(6.975 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-61\" d=\"M 2194 1759  L 2003 1759  Q 1500 1759 1245 1582  Q 991 1406 991 1056  Q 991 741 1181 566  Q 1372 391 1709 391  Q 2184 391 2456 720  Q 2728 1050 2731 1631  L 2731 1759  L 2194 1759  z M 3309 1997  L 3309 0  L 2731 0  L 2731 519  Q 2547 206 2267 57  Q 1988 -91 1588 -91  Q 1053 -91 734 211  Q 416 513 416 1019  Q 416 1603 808 1906  Q 1200 2209 1959 2209  L 2731 2209  L 2731 2300  Q 2728 2719 2518 2908  Q 2309 3097 1850 3097  Q 1556 3097 1256 3012  Q 956 2928 672 2766  L 672 3341  Q 991 3463 1283 3523  Q 1575 3584 1850 3584  Q 2284 3584 2592 3456  Q 2900 3328 3091 3072  Q 3209 2916 3259 2686  Q 3309 2456 3309 1997  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-61\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(13.5036 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(20.0322 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(26.5608 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(49.1598 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(71.7588 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #a40227\" transform=\"translate(78.2874 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(84.816 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- g -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(107.415 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-67\" d=\"M 2681 1778  Q 2681 2425 2470 2761  Q 2259 3097 1856 3097  Q 1434 3097 1212 2761  Q 991 2425 991 1778  Q 991 1131 1214 792  Q 1438 453 1863 453  Q 2259 453 2470 793  Q 2681 1134 2681 1778  z M 3256 225  Q 3256 -563 2884 -969  Q 2513 -1375 1791 -1375  Q 1553 -1375 1293 -1331  Q 1034 -1288 775 -1203  L 775 -634  Q 1081 -778 1331 -847  Q 1581 -916 1791 -916  Q 2256 -916 2468 -662  Q 2681 -409 2681 141  L 2681 166  L 2681 556  Q 2544 263 2306 119  Q 2069 -25 1728 -25  Q 1116 -25 750 465  Q 384 956 384 1778  Q 384 2603 750 3093  Q 1116 3584 1728 3584  Q 2066 3584 2300 3450  Q 2534 3316 2681 3034  L 2681 3488  L 3256 3488  L 3256 225  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-67\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(113.9436 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(120.4722 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!-- [ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(143.0712 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5b\" d=\"M 1447 4863  L 2772 4863  L 2772 4416  L 2022 4416  L 2022 -397  L 2772 -397  L 2772 -844  L 1447 -844  L 1447 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(149.5998 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-30\" d=\"M 1509 2344  Q 1509 2516 1629 2641  Q 1750 2766 1919 2766  Q 2094 2766 2219 2641  Q 2344 2516 2344 2344  Q 2344 2169 2220 2047  Q 2097 1925 1919 1925  Q 1744 1925 1626 2044  Q 1509 2163 1509 2344  z M 1925 4250  Q 1484 4250 1267 3775  Q 1050 3300 1050 2328  Q 1050 1359 1267 884  Q 1484 409 1925 409  Q 2369 409 2586 884  Q 2803 1359 2803 2328  Q 2803 3300 2586 3775  Q 2369 4250 1925 4250  z M 1925 4750  Q 2672 4750 3055 4137  Q 3438 3525 3438 2328  Q 3438 1134 3055 521  Q 2672 -91 1925 -91  Q 1178 -91 797 521  Q 416 1134 416 2328  Q 416 3525 797 4137  Q 1178 4750 1925 4750  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(156.1284 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2c\" d=\"M 1569 947  L 2356 947  L 2356 300  L 1741 -897  L 1259 -897  L 1569 300  L 1569 947  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.657 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3a\" d=\"M 1528 3322  L 2316 3322  L 2316 2375  L 1528 2375  L 1528 3322  z M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(169.1856 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- : -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.7142 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-3a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(182.2428 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.7714 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-31\" d=\"M 844 531  L 1825 531  L 1825 4097  L 769 3859  L 769 4434  L 1819 4666  L 2450 4666  L 2450 531  L 3419 531  L 3419 0  L 844 0  L 844 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- ] -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(195.3 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-5d\" d=\"M 2406 4863  L 2406 -844  L 1081 -844  L 1081 -397  L 1831 -397  L 1831 4416  L 1081 4416  L 1081 4863  L 2406 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-5d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(201.8286 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(224.4276 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(247.0266 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(253.5552 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(260.0838 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(266.6124 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-72\" d=\"M 3609 2778  Q 3425 2922 3234 2987  Q 3044 3053 2816 3053  Q 2278 3053 1993 2715  Q 1709 2378 1709 1741  L 1709 0  L 1131 0  L 1131 3500  L 1709 3500  L 1709 2816  Q 1853 3188 2151 3386  Q 2450 3584 2859 3584  Q 3072 3584 3256 3531  Q 3441 3478 3609 3366  L 3609 2778  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- c -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(273.141 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-63\" d=\"M 3316 178  Q 3084 44 2839 -23  Q 2594 -91 2338 -91  Q 1525 -91 1067 396  Q 609 884 609 1747  Q 609 2609 1067 3096  Q 1525 3584 2338 3584  Q 2591 3584 2831 3518  Q 3072 3453 3316 3316  L 3316 2713  Q 3088 2916 2858 3006  Q 2628 3097 2338 3097  Q 1797 3097 1506 2747  Q 1216 2397 1216 1747  Q 1216 1100 1508 748  Q 1800 397 2338 397  Q 2638 397 2875 489  Q 3113 581 3316 775  L 3316 178  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-63\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(279.6696 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(286.1982 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- z -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(292.7268 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-7a\" d=\"M 709 3506  L 3250 3506  L 3250 2981  L 1241 469  L 3250 469  L 3250 0  L 634 0  L 634 531  L 2644 3047  L 709 3047  L 709 3506  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-7a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- e -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(299.2554 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-65\" d=\"M 3475 1894  L 3475 1613  L 984 1613  L 984 1594  Q 984 1022 1282 709  Q 1581 397 2125 397  Q 2400 397 2700 484  Q 3000 572 3341 750  L 3341 178  Q 3013 44 2708 -23  Q 2403 -91 2119 -91  Q 1303 -91 843 398  Q 384 888 384 1747  Q 384 2584 834 3084  Q 1284 3584 2034 3584  Q 2703 3584 3089 3131  Q 3475 2678 3475 1894  z M 2900 2063  Q 2888 2569 2661 2833  Q 2434 3097 2009 3097  Q 1594 3097 1325 2822  Q 1056 2547 1006 2059  L 2900 2063  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-65\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- r -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(305.784 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-72\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(312.3126 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- s -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(318.8412 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-73\" d=\"M 3041 3378  L 3041 2816  Q 2794 2959 2544 3031  Q 2294 3103 2034 3103  Q 1644 3103 1451 2976  Q 1259 2850 1259 2591  Q 1259 2356 1403 2240  Q 1547 2125 2119 2016  L 2350 1972  Q 2778 1891 2998 1647  Q 3219 1403 3219 1013  Q 3219 494 2850 201  Q 2481 -91 1825 -91  Q 1566 -91 1281 -36  Q 997 19 666 128  L 666 722  Q 988 556 1281 473  Q 1575 391 1838 391  Q 2219 391 2428 545  Q 2638 700 2638 978  Q 2638 1378 1872 1531  L 1847 1538  L 1631 1581  Q 1134 1678 906 1908  Q 678 2138 678 2534  Q 678 3038 1018 3311  Q 1359 3584 1991 3584  Q 2272 3584 2531 3532  Q 2791 3481 3041 3378  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-73\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(325.3698 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 2 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(331.8984 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-32\" d=\"M 1166 531  L 3309 531  L 3309 0  L 475 0  L 475 531  Q 1059 1147 1496 1619  Q 1934 2091 2100 2284  Q 2413 2666 2522 2902  Q 2631 3138 2631 3384  Q 2631 3775 2401 3997  Q 2172 4219 1772 4219  Q 1488 4219 1175 4116  Q 863 4013 513 3803  L 513 4441  Q 834 4594 1145 4672  Q 1456 4750 1759 4750  Q 2444 4750 2861 4386  Q 3278 4022 3278 3431  Q 3278 3131 3139 2831  Q 3000 2531 2688 2169  Q 2513 1966 2180 1606  Q 1847 1247 1166 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(338.427 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- 0 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(344.9556 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-30\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- , -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(351.4842 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2c\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- 1 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(358.0128 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(364.5414 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(371.07 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(377.5986 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(384.1272 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_45\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(390.6558 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_46\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(397.1844 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_47\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(403.713 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_48\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(410.2416 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_49\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(416.7702 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_50\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(423.2988 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_51\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(429.8274 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_52\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(436.356 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_53\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(442.8846 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_54\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #b4b4b4\" transform=\"translate(449.4132 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_55\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(48.02391 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_56\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(49.921678 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_57\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(36.0091 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_58\">\n",
       "    <!-- 2 -->\n",
       "    <g transform=\"translate(103.9941 37.048153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_59\">\n",
       "    <!-- 20 -->\n",
       "    <g transform=\"translate(113.877056 20.697521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-30\" d=\"M 266 2259  Q 266 3072 433 3567  Q 600 4063 929 4331  Q 1259 4600 1759 4600  Q 2128 4600 2406 4451  Q 2684 4303 2865 4023  Q 3047 3744 3150 3342  Q 3253 2941 3253 2259  Q 3253 1453 3087 958  Q 2922 463 2592 192  Q 2263 -78 1759 -78  Q 1097 -78 719 397  Q 266 969 266 2259  z M 844 2259  Q 844 1131 1108 757  Q 1372 384 1759 384  Q 2147 384 2411 759  Q 2675 1134 2675 2259  Q 2675 3391 2411 3762  Q 2147 4134 1753 4134  Q 1366 4134 1134 3806  Q 844 3388 844 2259  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_60\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(126.917664 39.551384)rotate(-45)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_61\">\n",
       "    <!-- $\\cdots\\mathsf{x}$10 -->\n",
       "    <g transform=\"translate(105.0129 53.476972)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-22ef\" d=\"M 740 2363  L 1400 2363  L 1400 1569  L 740 1569  L 740 2363  z M 2868 2363  L 3528 2363  L 3528 1569  L 2868 1569  L 2868 2363  z M 4996 2363  L 5656 2363  L 5656 1569  L 4996 1569  L 4996 2363  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-78\" d=\"M 3513 3500  L 2247 1797  L 3578 0  L 2900 0  L 1881 1375  L 863 0  L 184 0  L 1544 1831  L 300 3500  L 978 3500  L 1906 2253  L 2834 3500  L 3513 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-22ef\" transform=\"translate(0 0.125)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-78\" transform=\"translate(100 0.125)\"/>\n",
       "     <use xlink:href=\"#ArialMT-31\" transform=\"translate(159.179688 0.125)\"/>\n",
       "     <use xlink:href=\"#ArialMT-30\" transform=\"translate(214.794922 0.125)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_62\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(100.7929 59.764529)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_63\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(223.29171 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_64\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(225.189478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_65\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(211.2769 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pdf2d9d14e6\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"455.9418\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "torch says: The size of tensor a (2000) must match the size of tensor b (20) at non-singleton dimension 0\n",
      "\n",
      "torch adds: Cause: + on tensor operand b w/shape [2000, 1] and operand g.W[0,:,:,1]@b w/shape [20, 1]\n"
     ]
    }
   ],
   "source": [
    "try:\n",
    "    with tsensor.clarify():\n",
    "        a = b + g.W[0,:,:,1]@b+torch.zeros(200,1)+(h+3).dot(h)\n",
    "except BaseException as e:\n",
    "    msgs = str(e).split(\"\\n\")\n",
    "    sys.stderr.write(\"torch says: \"+msgs[0]+'\\n\\n')\n",
    "    sys.stderr.write(\"torch adds: \"+msgs[1]+'\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Saving explanations to files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "W = torch.rand(size=(2000,2000))\n",
    "b = torch.rand(size=(2000,1))\n",
    "h = torch.rand(size=(1_000_000,))\n",
    "x = torch.rand(size=(2000,1))\n",
    "\n",
    "with tsensor.explain(savefig=\"/tmp/foo.svg\"): # save foo-1.svg and foo-2.svg in /tmp\n",
    "    a = torch.relu(x)\n",
    "    b = W @ b + x * 3 + h.dot(h)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r----- 1 parrt primarygroup 17973 Apr  7 13:48 /tmp/foo-1.svg\n",
      "-rw-r----- 1 parrt primarygroup 28139 Apr  7 13:48 /tmp/foo-2.svg\n"
     ]
    }
   ],
   "source": [
    "!ls -l /tmp/foo-?.svg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"383.918406pt\" height=\"53.436659pt\" viewBox=\"0 0 383.918406 53.436659\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:20.056197</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M -0 53.436659  L 383.918406 53.436659  L 383.918406 0  L -0 0  L -0 53.436659  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 23.69826 45.675941  L 28.92114 45.675941  L 28.92114 23.415521  L 23.69826 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 73.13985 45.675941  L 95.98995 45.675941  L 95.98995 23.415521  L 73.13985 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 140.20866 45.675941  L 145.43154 45.675941  L 145.43154 23.415521  L 140.20866 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 198.46386 45.675941  L 203.68674 45.675941  L 203.68674 23.415521  L 198.46386 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 274.01985 28.503617  L 296.86995 28.503617  L 296.86995 23.415521  L 274.01985 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 345.33225 28.503617  L 368.18235 28.503617  L 368.18235 23.415521  L 345.33225 23.415521  z \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.688278  L 30.22686 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.688278  L 88.48206 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 138.90294 13.688278  L 146.73726 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 197.15814 13.688278  L 204.99246 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 281.52774 13.688278  L 289.36206 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_6\">\n",
       "    <path d=\"M 352.84014 13.688278  L 360.67446 13.688278  \" clip-path=\"url(#p99751f5f0c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-62\" d=\"M 2869 1747  Q 2869 2416 2656 2756  Q 2444 3097 2028 3097  Q 1609 3097 1393 2755  Q 1178 2413 1178 1747  Q 1178 1084 1393 740  Q 1609 397 2028 397  Q 2444 397 2656 737  Q 2869 1078 2869 1747  z M 1178 3053  Q 1316 3309 1558 3446  Q 1800 3584 2119 3584  Q 2750 3584 3112 3098  Q 3475 2613 3475 1759  Q 3475 894 3111 401  Q 2747 -91 2113 -91  Q 1800 -91 1561 45  Q 1322 181 1178 441  L 1178 0  L 603 0  L 603 4863  L 1178 4863  L 1178 3053  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- = -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-3d\" d=\"M 275 1638  L 3578 1638  L 3578 1100  L 275 1100  L 275 1638  z M 275 2906  L 3578 2906  L 3578 2375  L 275 2375  L 275 2906  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-3d\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-57\" d=\"M 0 4666  L 616 4666  L 1063 878  L 1594 3384  L 2253 3384  L 2791 872  L 3238 4666  L 3853 4666  L 3156 0  L 2559 0  L 1925 2772  L 1294 0  L 697 0  L 0 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-40\" d=\"M 3244 1703  Q 3244 2106 3044 2348  Q 2844 2591 2509 2591  Q 2175 2591 1973 2348  Q 1772 2106 1772 1703  Q 1772 1297 1973 1055  Q 2175 813 2509 813  Q 2844 813 3044 1055  Q 3244 1297 3244 1703  z M 3681 422  L 3231 422  L 3231 769  Q 3116 572 2911 465  Q 2706 359 2450 359  Q 1947 359 1617 737  Q 1288 1116 1288 1703  Q 1288 2291 1617 2669  Q 1947 3047 2450 3047  Q 2700 3047 2909 2937  Q 3119 2828 3231 2638  L 3231 2834  Q 3231 3322 2956 3619  Q 2681 3916 2228 3916  Q 1459 3916 1004 3317  Q 550 2719 550 1697  Q 550 669 1065 59  Q 1581 -550 2438 -550  Q 2606 -550 2775 -519  Q 2944 -488 3122 -422  L 3272 -844  Q 3075 -922 2883 -959  Q 2691 -997 2509 -997  Q 1394 -997 739 -269  Q 84 459 84 1697  Q 84 2916 671 3637  Q 1259 4359 2247 4359  Q 2900 4359 3290 3943  Q 3681 3528 3681 2828  L 3681 422  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(139.5558 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.1548 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(168.6834 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2b\" d=\"M 2188 3659  L 2188 2272  L 3578 2272  L 3578 1741  L 2188 1741  L 2188 353  L 1663 353  L 1663 1741  L 275 1741  L 275 2272  L 1663 2272  L 1663 3659  L 2188 3659  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.212 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(197.811 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-78\" d=\"M 3494 3500  L 2241 1825  L 3616 0  L 2950 0  L 1925 1403  L 903 0  L 238 0  L 1613 1825  L 359 3500  L 997 3500  L 1925 2234  L 2847 3500  L 3494 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(220.41 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- * -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(226.9386 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2a\" d=\"M 3334 3897  L 2216 3291  L 3334 2681  L 3156 2375  L 2106 3009  L 2106 1831  L 1747 1831  L 1747 3009  L 697 2375  L 519 2681  L 1638 3291  L 519 3897  L 697 4206  L 1747 3572  L 1747 4750  L 2106 4750  L 2106 3572  L 3156 4206  L 3334 3897  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(233.4672 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(239.9958 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-33\" d=\"M 2425 2497  Q 2884 2375 3128 2064  Q 3372 1753 3372 1288  Q 3372 644 2939 276  Q 2506 -91 1741 -91  Q 1419 -91 1084 -31  Q 750 28 428 141  L 428 769  Q 747 603 1056 522  Q 1366 441 1672 441  Q 2191 441 2469 675  Q 2747 909 2747 1350  Q 2747 1756 2469 1995  Q 2191 2234 1716 2234  L 1234 2234  L 1234 2753  L 1716 2753  Q 2150 2753 2394 2943  Q 2638 3134 2638 3475  Q 2638 3834 2411 4026  Q 2184 4219 1766 4219  Q 1488 4219 1191 4156  Q 894 4094 569 3969  L 569 4550  Q 947 4650 1242 4700  Q 1538 4750 1766 4750  Q 2447 4750 2855 4408  Q 3263 4066 3263 3500  Q 3263 3116 3048 2859  Q 2834 2603 2425 2497  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(246.5244 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(253.053 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(259.5816 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(282.1806 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-68\" d=\"M 3284 2169  L 3284 0  L 2706 0  L 2706 2169  Q 2706 2641 2540 2862  Q 2375 3084 2022 3084  Q 1619 3084 1401 2798  Q 1184 2513 1184 1978  L 1184 0  L 609 0  L 609 4863  L 1184 4863  L 1184 2975  Q 1338 3275 1600 3429  Q 1863 3584 2222 3584  Q 2756 3584 3020 3232  Q 3284 2881 3284 2169  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(304.7796 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-2e\" d=\"M 1528 953  L 2316 953  L 2316 0  L 1528 0  L 1528 953  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(311.3082 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-64\" d=\"M 2681 3053  L 2681 4863  L 3256 4863  L 3256 0  L 2681 0  L 2681 441  Q 2538 181 2298 45  Q 2059 -91 1747 -91  Q 1113 -91 748 401  Q 384 894 384 1759  Q 384 2613 750 3098  Q 1116 3584 1747 3584  Q 2063 3584 2303 3448  Q 2544 3313 2681 3053  z M 991 1747  Q 991 1078 1203 737  Q 1416 397 1831 397  Q 2247 397 2464 740  Q 2681 1084 2681 1747  Q 2681 2413 2464 2755  Q 2247 3097 1831 3097  Q 1416 3097 1203 2756  Q 991 2416 991 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(317.8368 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-6f\" d=\"M 1925 3097  Q 1488 3097 1263 2756  Q 1038 2416 1038 1747  Q 1038 1081 1263 739  Q 1488 397 1925 397  Q 2366 397 2591 739  Q 2816 1081 2816 1747  Q 2816 2416 2591 2756  Q 2366 3097 1925 3097  z M 1925 3584  Q 2653 3584 3039 3112  Q 3425 2641 3425 1747  Q 3425 850 3040 379  Q 2656 -91 1925 -91  Q 1197 -91 812 379  Q 428 850 428 1747  Q 428 2641 812 3112  Q 1197 3584 1925 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(324.3654 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-74\" d=\"M 1919 4494  L 1919 3500  L 3225 3500  L 3225 3053  L 1919 3053  L 1919 1153  Q 1919 766 2066 612  Q 2213 459 2578 459  L 3225 459  L 3225 0  L 2522 0  Q 1875 0 1609 259  Q 1344 519 1344 1153  L 1344 3053  L 409 3053  L 409 3500  L 1344 3500  L 1344 4494  L 1919 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(330.894 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-28\" d=\"M 2766 4856  Q 2350 4144 2145 3436  Q 1941 2728 1941 2009  Q 1941 1294 2145 584  Q 2350 -125 2766 -844  L 2266 -844  Q 1794 -100 1562 604  Q 1331 1309 1331 2009  Q 1331 2706 1562 3412  Q 1794 4119 2266 4856  L 2766 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(353.493 9.947031)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSansMono-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(376.092 9.947031)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSansMono-29\" d=\"M 1088 4856  L 1588 4856  Q 2059 4119 2290 3412  Q 2522 2706 2522 2009  Q 2522 1306 2290 600  Q 2059 -106 1588 -844  L 1088 -844  Q 1503 -119 1708 590  Q 1913 1300 1913 2009  Q 1913 2722 1708 3431  Q 1503 4141 1088 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSansMono-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(21.90951 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(23.807278 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 52.045409)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(71.3511 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(79.812478 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(138.41991 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(140.317678 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(126.4051 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_38\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(196.67511 39.298153)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_39\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(198.572878 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_40\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(184.6603 52.045409)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_41\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(279.194119 22.056521)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-6d\" d=\"M 422 0  L 422 3319  L 925 3319  L 925 2853  Q 1081 3097 1340 3245  Q 1600 3394 1931 3394  Q 2300 3394 2536 3241  Q 2772 3088 2869 2813  Q 3263 3394 3894 3394  Q 4388 3394 4653 3120  Q 4919 2847 4919 2278  L 4919 0  L 4359 0  L 4359 2091  Q 4359 2428 4304 2576  Q 4250 2725 4106 2815  Q 3963 2906 3769 2906  Q 3419 2906 3187 2673  Q 2956 2441 2956 1928  L 2956 0  L 2394 0  L 2394 2156  Q 2394 2531 2256 2718  Q 2119 2906 1806 2906  Q 1569 2906 1367 2781  Q 1166 2656 1075 2415  Q 984 2175 984 1722  L 984 0  L 422 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_42\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(269.0299 34.786109)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_43\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(350.506519 22.056521)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_44\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(340.3423 34.786109)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p99751f5f0c\">\n",
       "   <rect x=\"0\" y=\"5.000271\" width=\"382.6206\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import SVG\n",
    "display(SVG(\"/tmp/foo-2.svg\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lower-level API to show abstract syntax trees (AST) and evaluate them"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Get ast and computation result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensor([[3.3651e+08],\n",
       "        [3.3204e+08],\n",
       "        [3.2950e+08],\n",
       "        ...,\n",
       "        [3.3568e+08],\n",
       "        [3.3557e+08],\n",
       "        [3.3285e+08]])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "root, result = tsensor.eval(\"W @ b + x * 3 + h.dot(h)\")  # use current context to evaluate.\n",
    "result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Show the ast"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Generated by graphviz version 2.43.0 (0)\n",
       " -->\n",
       "<!-- Title: G Pages: 1 -->\n",
       "<svg width=\"267pt\" height=\"324pt\"\n",
       " viewBox=\"0.00 0.00 267.00 324.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 320)\">\n",
       "<title>G</title>\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-320 263,-320 263,4 -4,4\"/>\n",
       "<!-- leaf139658452095280 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>leaf139658452095280</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"8,-316 0,-316 0,-280 8,-280 8,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"0\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">b</text>\n",
       "</g>\n",
       "<!-- leaf139658452097584 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>leaf139658452097584</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"27,-316 9,-316 9,-280 27,-280 27,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"14\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">=</text>\n",
       "</g>\n",
       "<!-- leaf139658452095280&#45;&gt;leaf139658452097584 -->\n",
       "<!-- leaf139658446147104 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>leaf139658446147104</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"36,-316 28,-316 28,-280 36,-280 36,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"28\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">W</text>\n",
       "</g>\n",
       "<!-- leaf139658452097584&#45;&gt;leaf139658446147104 -->\n",
       "<!-- leaf139658446146528 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>leaf139658446146528</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"51,-316 37,-316 37,-280 51,-280 51,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"40\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">@</text>\n",
       "</g>\n",
       "<!-- leaf139658446147104&#45;&gt;leaf139658446146528 -->\n",
       "<!-- leaf139658446146768 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>leaf139658446146768</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"60,-316 52,-316 52,-280 60,-280 60,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"52\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">b</text>\n",
       "</g>\n",
       "<!-- leaf139658446146528&#45;&gt;leaf139658446146768 -->\n",
       "<!-- leaf139658446146336 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>leaf139658446146336</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"90.5,-316 61.5,-316 61.5,-280 90.5,-280 90.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"72\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658446146768&#45;&gt;leaf139658446146336 -->\n",
       "<!-- leaf139658446144848 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>leaf139658446144848</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"100,-316 92,-316 92,-280 100,-280 100,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"92\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">(</text>\n",
       "</g>\n",
       "<!-- leaf139658446146336&#45;&gt;leaf139658446144848 -->\n",
       "<!-- leaf139658446144176 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>leaf139658446144176</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"109,-316 101,-316 101,-280 109,-280 109,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"101\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">h</text>\n",
       "</g>\n",
       "<!-- leaf139658446144848&#45;&gt;leaf139658446144176 -->\n",
       "<!-- leaf139658446147488 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>leaf139658446147488</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"139.5,-316 110.5,-316 110.5,-280 139.5,-280 139.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"121\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658446144176&#45;&gt;leaf139658446147488 -->\n",
       "<!-- leaf139658446146480 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>leaf139658446146480</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"149,-316 141,-316 141,-280 149,-280 149,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"141\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">3</text>\n",
       "</g>\n",
       "<!-- leaf139658446147488&#45;&gt;leaf139658446146480 -->\n",
       "<!-- leaf139658446144080 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>leaf139658446144080</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"158,-316 150,-316 150,-280 158,-280 158,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"150\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">)</text>\n",
       "</g>\n",
       "<!-- leaf139658446146480&#45;&gt;leaf139658446144080 -->\n",
       "<!-- leaf139658446147536 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>leaf139658446147536</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"167,-316 159,-316 159,-280 167,-280 167,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"159\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">.</text>\n",
       "</g>\n",
       "<!-- leaf139658446144080&#45;&gt;leaf139658446147536 -->\n",
       "<!-- leaf139658452207792 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>leaf139658452207792</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"191.5,-316 168.5,-316 168.5,-280 191.5,-280 191.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"168.5\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">dot</text>\n",
       "</g>\n",
       "<!-- leaf139658446147536&#45;&gt;leaf139658452207792 -->\n",
       "<!-- leaf139658452205872 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>leaf139658452205872</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"201,-316 193,-316 193,-280 201,-280 201,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"193\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">(</text>\n",
       "</g>\n",
       "<!-- leaf139658452207792&#45;&gt;leaf139658452205872 -->\n",
       "<!-- leaf139658452206736 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>leaf139658452206736</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"210,-316 202,-316 202,-280 210,-280 210,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"202\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">h</text>\n",
       "</g>\n",
       "<!-- leaf139658452205872&#45;&gt;leaf139658452206736 -->\n",
       "<!-- leaf139658452209040 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>leaf139658452209040</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"219,-316 211,-316 211,-280 219,-280 219,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"211\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">)</text>\n",
       "</g>\n",
       "<!-- leaf139658452206736&#45;&gt;leaf139658452209040 -->\n",
       "<!-- leaf139658452206448 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>leaf139658452206448</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"249.5,-316 220.5,-316 220.5,-280 249.5,-280 249.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"231\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658452209040&#45;&gt;leaf139658452206448 -->\n",
       "<!-- leaf139658452208704 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>leaf139658452208704</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"259,-316 251,-316 251,-280 259,-280 259,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"251\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">z</text>\n",
       "</g>\n",
       "<!-- leaf139658452206448&#45;&gt;leaf139658452208704 -->\n",
       "<!-- node139658452095136 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>node139658452095136</title>\n",
       "<polygon fill=\"#a8e1b0\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"75.5,-258 36.5,-258 36.5,-228 75.5,-228 75.5,-258\"/>\n",
       "<text text-anchor=\"start\" x=\"52\" y=\"-249.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">@</text>\n",
       "<text text-anchor=\"start\" x=\"46\" y=\"-239.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"36.5\" y=\"-230.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;float64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452095136&#45;&gt;leaf139658446147104 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>node139658452095136&#45;&gt;leaf139658446147104</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M48.13,-261.39C44.11,-270.25 39.4,-280.66 36.11,-287.93\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"49.29,-261.37 49.57,-258.2 47.37,-260.5 49.29,-261.37\"/>\n",
       "</g>\n",
       "<!-- node139658452095136&#45;&gt;leaf139658446146768 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>node139658452095136&#45;&gt;leaf139658446146768</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M56,-261.4C56,-267.28 56,-273.85 56,-279.73\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"57.05,-261.2 56,-258.2 54.95,-261.2 57.05,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452207360 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>node139658452207360</title>\n",
       "<polygon fill=\"#7fa4d3\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"160.5,-258 129.5,-258 129.5,-228 160.5,-228 160.5,-258\"/>\n",
       "<text text-anchor=\"start\" x=\"141\" y=\"-249.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"138.5\" y=\"-239.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">1m</text>\n",
       "<text text-anchor=\"start\" x=\"129.5\" y=\"-230.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;int64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452207360&#45;&gt;leaf139658446144176 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>node139658452207360&#45;&gt;leaf139658446144176</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M128.35,-260.71C123.06,-266.53 117.43,-273.28 113,-280 111.56,-282.18 110.24,-284.66 109.11,-287.03\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"129.33,-261.2 130.59,-258.28 127.78,-259.77 129.33,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452207360&#45;&gt;leaf139658446146480 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>node139658452207360&#45;&gt;leaf139658446146480</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M145,-261.4C145,-267.28 145,-273.85 145,-279.73\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"146.05,-261.2 145,-258.2 143.95,-261.2 146.05,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452209136 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>node139658452209136</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"167,-206 149,-206 149,-192 167,-192 167,-206\"/>\n",
       "<text text-anchor=\"start\" x=\"154\" y=\"-195.9\" font-family=\"Consolas\" font-size=\"12.00\">.</text>\n",
       "</g>\n",
       "<!-- node139658452209136&#45;&gt;leaf139658452207792 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>node139658452209136&#45;&gt;leaf139658452207792</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M160.05,-209.05C163.71,-225.17 171.41,-259.13 176.1,-279.81\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"161.06,-208.76 159.38,-206.07 159.02,-209.23 161.06,-208.76\"/>\n",
       "</g>\n",
       "<!-- node139658452209136&#45;&gt;node139658452207360 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>node139658452209136&#45;&gt;node139658452207360</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M155.11,-209.35C153.43,-214.77 151.28,-221.69 149.4,-227.77\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"156.2,-209.37 156.08,-206.2 154.19,-208.75 156.2,-209.37\"/>\n",
       "</g>\n",
       "<!-- node139658452206256 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>node139658452206256</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"177,-170 139,-170 139,-156 177,-156 177,-170\"/>\n",
       "<text text-anchor=\"start\" x=\"139\" y=\"-159.9\" font-family=\"Consolas\" font-size=\"12.00\">dot()</text>\n",
       "</g>\n",
       "<!-- node139658452206256&#45;&gt;leaf139658452206736 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>node139658452206256&#45;&gt;leaf139658452206736</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M161.24,-172.97C169.71,-196.44 192.5,-259.59 201.88,-285.58\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"162.19,-172.53 160.19,-170.06 160.22,-173.24 162.19,-172.53\"/>\n",
       "</g>\n",
       "<!-- node139658452206256&#45;&gt;node139658452209136 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>node139658452206256&#45;&gt;node139658452209136</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M158,-173.32C158,-179.2 158,-186.64 158,-191.8\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"159.05,-173.24 158,-170.24 156.95,-173.24 159.05,-173.24\"/>\n",
       "</g>\n",
       "<!-- node139658452208464 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>node139658452208464</title>\n",
       "<polygon fill=\"#a8e1b0\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"122.5,-134 83.5,-134 83.5,-104 122.5,-104 122.5,-134\"/>\n",
       "<text text-anchor=\"start\" x=\"99\" y=\"-125.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"93\" y=\"-115.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"83.5\" y=\"-106.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;float64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452208464&#45;&gt;node139658452095136 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>node139658452208464&#45;&gt;node139658452095136</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M96.32,-137.34C86.94,-161.68 70.07,-205.49 61.42,-227.92\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"97.33,-137.65 97.42,-134.47 95.37,-136.9 97.33,-137.65\"/>\n",
       "</g>\n",
       "<!-- node139658452208464&#45;&gt;node139658452206256 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>node139658452208464&#45;&gt;node139658452206256</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M124.39,-136.34C133.44,-143.25 143.42,-150.87 150.13,-155.99\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"124.64,-135.21 121.62,-134.22 123.37,-136.87 124.64,-135.21\"/>\n",
       "</g>\n",
       "<!-- node139658452205680 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>node139658452205680</title>\n",
       "<polygon fill=\"#fdd66c\" stroke=\"black\" stroke-width=\"0\" points=\"133.5,-82 72.5,-82 72.5,-52 133.5,-52 133.5,-82\"/>\n",
       "<text text-anchor=\"start\" x=\"99\" y=\"-73.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"93\" y=\"-63.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"72.5\" y=\"-54.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;complex128&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452205680&#45;&gt;leaf139658452208704 -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>node139658452205680&#45;&gt;leaf139658452208704</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M136.51,-78.01C172.32,-91.02 224,-117.5 224,-162 224,-162 224,-162 224,-200 224,-217.5 242.54,-265.96 250.95,-287.01\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"136.71,-76.96 133.53,-76.94 136.01,-78.94 136.71,-76.96\"/>\n",
       "</g>\n",
       "<!-- node139658452205680&#45;&gt;node139658452208464 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>node139658452205680&#45;&gt;node139658452208464</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M103,-85.48C103,-91.52 103,-98.21 103,-103.94\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"104.05,-85.19 103,-82.19 101.95,-85.19 104.05,-85.19\"/>\n",
       "</g>\n",
       "<!-- node139658452209376 -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>node139658452209376</title>\n",
       "<polygon fill=\"#fdd66c\" stroke=\"black\" stroke-width=\"0\" points=\"75.5,-30 14.5,-30 14.5,0 75.5,0 75.5,-30\"/>\n",
       "<text text-anchor=\"start\" x=\"41\" y=\"-21.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">=</text>\n",
       "<text text-anchor=\"start\" x=\"35\" y=\"-11.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"14.5\" y=\"-2.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;complex128&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452209376&#45;&gt;leaf139658452095280 -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>node139658452209376&#45;&gt;leaf139658452095280</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M40.57,-33.44C35.83,-53.65 29,-88.01 29,-118 29,-118 29,-118 29,-200 29,-233.22 15.08,-270.86 8.02,-287.84\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"41.7,-33.24 41.37,-30.08 39.65,-32.76 41.7,-33.24\"/>\n",
       "</g>\n",
       "<!-- node139658452209376&#45;&gt;node139658452205680 -->\n",
       "<g id=\"edge31\" class=\"edge\">\n",
       "<title>node139658452209376&#45;&gt;node139658452205680</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M64.11,-32.47C71.42,-38.77 79.67,-45.89 86.69,-51.94\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"64.42,-31.36 61.47,-30.19 63.05,-32.95 64.42,-31.36\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<tsensor.viz.QuietGraphvizWrapper at 0x7f048472bd30>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "W = torch.rand(size=(2000,2000), dtype=torch.float64)\n",
    "b = torch.rand(size=(2000,1), dtype=torch.float64)\n",
    "h = torch.zeros(size=(1_000_000,), dtype=int)\n",
    "x = torch.rand(size=(2000,1))\n",
    "z = torch.rand(size=(2000,1), dtype=torch.complex64)\n",
    "\n",
    "g = tsensor.astviz(\"b = W@b + (h+3).dot(h) + z\", sys._getframe()) # don't eval, just show AST\n",
    "g"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "g.savefig(\"/tmp/ast.svg\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "g.savefig(\"/tmp/ast.pdf\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"267pt\" height=\"324pt\" viewBox=\"0.00 0.00 267.00 324.00\">\n",
       "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 320)\">\n",
       "<title>G</title>\n",
       "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-320 263,-320 263,4 -4,4\"/>\n",
       "<!-- leaf139658452095280 -->\n",
       "<g id=\"node1\" class=\"node\">\n",
       "<title>leaf139658452095280</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"8,-316 0,-316 0,-280 8,-280 8,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"0\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">b</text>\n",
       "</g>\n",
       "<!-- leaf139658452097584 -->\n",
       "<g id=\"node2\" class=\"node\">\n",
       "<title>leaf139658452097584</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"27,-316 9,-316 9,-280 27,-280 27,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"14\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">=</text>\n",
       "</g>\n",
       "<!-- leaf139658452095280&#45;&gt;leaf139658452097584 -->\n",
       "<!-- leaf139658446147104 -->\n",
       "<g id=\"node3\" class=\"node\">\n",
       "<title>leaf139658446147104</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"36,-316 28,-316 28,-280 36,-280 36,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"28\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">W</text>\n",
       "</g>\n",
       "<!-- leaf139658452097584&#45;&gt;leaf139658446147104 -->\n",
       "<!-- leaf139658446146528 -->\n",
       "<g id=\"node4\" class=\"node\">\n",
       "<title>leaf139658446146528</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"51,-316 37,-316 37,-280 51,-280 51,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"40\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">@</text>\n",
       "</g>\n",
       "<!-- leaf139658446147104&#45;&gt;leaf139658446146528 -->\n",
       "<!-- leaf139658446146768 -->\n",
       "<g id=\"node5\" class=\"node\">\n",
       "<title>leaf139658446146768</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"60,-316 52,-316 52,-280 60,-280 60,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"52\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">b</text>\n",
       "</g>\n",
       "<!-- leaf139658446146528&#45;&gt;leaf139658446146768 -->\n",
       "<!-- leaf139658446146336 -->\n",
       "<g id=\"node6\" class=\"node\">\n",
       "<title>leaf139658446146336</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"90.5,-316 61.5,-316 61.5,-280 90.5,-280 90.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"72\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658446146768&#45;&gt;leaf139658446146336 -->\n",
       "<!-- leaf139658446144848 -->\n",
       "<g id=\"node7\" class=\"node\">\n",
       "<title>leaf139658446144848</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"100,-316 92,-316 92,-280 100,-280 100,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"92\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">(</text>\n",
       "</g>\n",
       "<!-- leaf139658446146336&#45;&gt;leaf139658446144848 -->\n",
       "<!-- leaf139658446144176 -->\n",
       "<g id=\"node8\" class=\"node\">\n",
       "<title>leaf139658446144176</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"109,-316 101,-316 101,-280 109,-280 109,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"101\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">h</text>\n",
       "</g>\n",
       "<!-- leaf139658446144848&#45;&gt;leaf139658446144176 -->\n",
       "<!-- leaf139658446147488 -->\n",
       "<g id=\"node9\" class=\"node\">\n",
       "<title>leaf139658446147488</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"139.5,-316 110.5,-316 110.5,-280 139.5,-280 139.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"121\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658446144176&#45;&gt;leaf139658446147488 -->\n",
       "<!-- leaf139658446146480 -->\n",
       "<g id=\"node10\" class=\"node\">\n",
       "<title>leaf139658446146480</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"149,-316 141,-316 141,-280 149,-280 149,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"141\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">3</text>\n",
       "</g>\n",
       "<!-- leaf139658446147488&#45;&gt;leaf139658446146480 -->\n",
       "<!-- leaf139658446144080 -->\n",
       "<g id=\"node11\" class=\"node\">\n",
       "<title>leaf139658446144080</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"158,-316 150,-316 150,-280 158,-280 158,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"150\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">)</text>\n",
       "</g>\n",
       "<!-- leaf139658446146480&#45;&gt;leaf139658446144080 -->\n",
       "<!-- leaf139658446147536 -->\n",
       "<g id=\"node12\" class=\"node\">\n",
       "<title>leaf139658446147536</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"167,-316 159,-316 159,-280 167,-280 167,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"159\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">.</text>\n",
       "</g>\n",
       "<!-- leaf139658446144080&#45;&gt;leaf139658446147536 -->\n",
       "<!-- leaf139658452207792 -->\n",
       "<g id=\"node13\" class=\"node\">\n",
       "<title>leaf139658452207792</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"191.5,-316 168.5,-316 168.5,-280 191.5,-280 191.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"168.5\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">dot</text>\n",
       "</g>\n",
       "<!-- leaf139658446147536&#45;&gt;leaf139658452207792 -->\n",
       "<!-- leaf139658452205872 -->\n",
       "<g id=\"node14\" class=\"node\">\n",
       "<title>leaf139658452205872</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"201,-316 193,-316 193,-280 201,-280 201,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"193\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">(</text>\n",
       "</g>\n",
       "<!-- leaf139658452207792&#45;&gt;leaf139658452205872 -->\n",
       "<!-- leaf139658452206736 -->\n",
       "<g id=\"node15\" class=\"node\">\n",
       "<title>leaf139658452206736</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"210,-316 202,-316 202,-280 210,-280 210,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"202\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">h</text>\n",
       "</g>\n",
       "<!-- leaf139658452205872&#45;&gt;leaf139658452206736 -->\n",
       "<!-- leaf139658452209040 -->\n",
       "<g id=\"node16\" class=\"node\">\n",
       "<title>leaf139658452209040</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"219,-316 211,-316 211,-280 219,-280 219,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"211\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">)</text>\n",
       "</g>\n",
       "<!-- leaf139658452206736&#45;&gt;leaf139658452209040 -->\n",
       "<!-- leaf139658452206448 -->\n",
       "<g id=\"node17\" class=\"node\">\n",
       "<title>leaf139658452206448</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"249.5,-316 220.5,-316 220.5,-280 249.5,-280 249.5,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"231\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "</g>\n",
       "<!-- leaf139658452209040&#45;&gt;leaf139658452206448 -->\n",
       "<!-- leaf139658452208704 -->\n",
       "<g id=\"node18\" class=\"node\">\n",
       "<title>leaf139658452208704</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"259,-316 251,-316 251,-280 259,-280 259,-316\"/>\n",
       "<text text-anchor=\"start\" x=\"251\" y=\"-294.9\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">z</text>\n",
       "</g>\n",
       "<!-- leaf139658452206448&#45;&gt;leaf139658452208704 -->\n",
       "<!-- node139658452095136 -->\n",
       "<g id=\"node19\" class=\"node\">\n",
       "<title>node139658452095136</title>\n",
       "<polygon fill=\"#a8e1b0\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"75.5,-258 36.5,-258 36.5,-228 75.5,-228 75.5,-258\"/>\n",
       "<text text-anchor=\"start\" x=\"52\" y=\"-249.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">@</text>\n",
       "<text text-anchor=\"start\" x=\"46\" y=\"-239.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"36.5\" y=\"-230.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;float64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452095136&#45;&gt;leaf139658446147104 -->\n",
       "<g id=\"edge18\" class=\"edge\">\n",
       "<title>node139658452095136-&gt;leaf139658446147104</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M48.13,-261.39C44.11,-270.25 39.4,-280.66 36.11,-287.93\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"49.29,-261.37 49.57,-258.2 47.37,-260.5 49.29,-261.37\"/>\n",
       "</g>\n",
       "<!-- node139658452095136&#45;&gt;leaf139658446146768 -->\n",
       "<g id=\"edge19\" class=\"edge\">\n",
       "<title>node139658452095136-&gt;leaf139658446146768</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M56,-261.4C56,-267.28 56,-273.85 56,-279.73\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"57.05,-261.2 56,-258.2 54.95,-261.2 57.05,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452207360 -->\n",
       "<g id=\"node20\" class=\"node\">\n",
       "<title>node139658452207360</title>\n",
       "<polygon fill=\"#7fa4d3\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"160.5,-258 129.5,-258 129.5,-228 160.5,-228 160.5,-258\"/>\n",
       "<text text-anchor=\"start\" x=\"141\" y=\"-249.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"138.5\" y=\"-239.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">1m</text>\n",
       "<text text-anchor=\"start\" x=\"129.5\" y=\"-230.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;int64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452207360&#45;&gt;leaf139658446144176 -->\n",
       "<g id=\"edge20\" class=\"edge\">\n",
       "<title>node139658452207360-&gt;leaf139658446144176</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M128.35,-260.71C123.06,-266.53 117.43,-273.28 113,-280 111.56,-282.18 110.24,-284.66 109.11,-287.03\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"129.33,-261.2 130.59,-258.28 127.78,-259.77 129.33,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452207360&#45;&gt;leaf139658446146480 -->\n",
       "<g id=\"edge21\" class=\"edge\">\n",
       "<title>node139658452207360-&gt;leaf139658446146480</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M145,-261.4C145,-267.28 145,-273.85 145,-279.73\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"146.05,-261.2 145,-258.2 143.95,-261.2 146.05,-261.2\"/>\n",
       "</g>\n",
       "<!-- node139658452209136 -->\n",
       "<g id=\"node21\" class=\"node\">\n",
       "<title>node139658452209136</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"167,-206 149,-206 149,-192 167,-192 167,-206\"/>\n",
       "<text text-anchor=\"start\" x=\"154\" y=\"-195.9\" font-family=\"Consolas\" font-size=\"12.00\">.</text>\n",
       "</g>\n",
       "<!-- node139658452209136&#45;&gt;leaf139658452207792 -->\n",
       "<g id=\"edge23\" class=\"edge\">\n",
       "<title>node139658452209136-&gt;leaf139658452207792</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M160.05,-209.05C163.71,-225.17 171.41,-259.13 176.1,-279.81\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"161.06,-208.76 159.38,-206.07 159.02,-209.23 161.06,-208.76\"/>\n",
       "</g>\n",
       "<!-- node139658452209136&#45;&gt;node139658452207360 -->\n",
       "<g id=\"edge22\" class=\"edge\">\n",
       "<title>node139658452209136-&gt;node139658452207360</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M155.11,-209.35C153.43,-214.77 151.28,-221.69 149.4,-227.77\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"156.2,-209.37 156.08,-206.2 154.19,-208.75 156.2,-209.37\"/>\n",
       "</g>\n",
       "<!-- node139658452206256 -->\n",
       "<g id=\"node22\" class=\"node\">\n",
       "<title>node139658452206256</title>\n",
       "<polygon fill=\"none\" stroke=\"black\" stroke-width=\"0\" points=\"177,-170 139,-170 139,-156 177,-156 177,-170\"/>\n",
       "<text text-anchor=\"start\" x=\"139\" y=\"-159.9\" font-family=\"Consolas\" font-size=\"12.00\">dot()</text>\n",
       "</g>\n",
       "<!-- node139658452206256&#45;&gt;leaf139658452206736 -->\n",
       "<g id=\"edge25\" class=\"edge\">\n",
       "<title>node139658452206256-&gt;leaf139658452206736</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M161.24,-172.97C169.71,-196.44 192.5,-259.59 201.88,-285.58\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"162.19,-172.53 160.19,-170.06 160.22,-173.24 162.19,-172.53\"/>\n",
       "</g>\n",
       "<!-- node139658452206256&#45;&gt;node139658452209136 -->\n",
       "<g id=\"edge24\" class=\"edge\">\n",
       "<title>node139658452206256-&gt;node139658452209136</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M158,-173.32C158,-179.2 158,-186.64 158,-191.8\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"159.05,-173.24 158,-170.24 156.95,-173.24 159.05,-173.24\"/>\n",
       "</g>\n",
       "<!-- node139658452208464 -->\n",
       "<g id=\"node23\" class=\"node\">\n",
       "<title>node139658452208464</title>\n",
       "<polygon fill=\"#a8e1b0\" fill-opacity=\"0.749020\" stroke=\"black\" stroke-width=\"0\" points=\"122.5,-134 83.5,-134 83.5,-104 122.5,-104 122.5,-134\"/>\n",
       "<text text-anchor=\"start\" x=\"99\" y=\"-125.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"93\" y=\"-115.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"83.5\" y=\"-106.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;float64&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452208464&#45;&gt;node139658452095136 -->\n",
       "<g id=\"edge26\" class=\"edge\">\n",
       "<title>node139658452208464-&gt;node139658452095136</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M96.32,-137.34C86.94,-161.68 70.07,-205.49 61.42,-227.92\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"97.33,-137.65 97.42,-134.47 95.37,-136.9 97.33,-137.65\"/>\n",
       "</g>\n",
       "<!-- node139658452208464&#45;&gt;node139658452206256 -->\n",
       "<g id=\"edge27\" class=\"edge\">\n",
       "<title>node139658452208464-&gt;node139658452206256</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M124.39,-136.34C133.44,-143.25 143.42,-150.87 150.13,-155.99\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"124.64,-135.21 121.62,-134.22 123.37,-136.87 124.64,-135.21\"/>\n",
       "</g>\n",
       "<!-- node139658452205680 -->\n",
       "<g id=\"node24\" class=\"node\">\n",
       "<title>node139658452205680</title>\n",
       "<polygon fill=\"#fdd66c\" stroke=\"black\" stroke-width=\"0\" points=\"133.5,-82 72.5,-82 72.5,-52 133.5,-52 133.5,-82\"/>\n",
       "<text text-anchor=\"start\" x=\"99\" y=\"-73.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">+</text>\n",
       "<text text-anchor=\"start\" x=\"93\" y=\"-63.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"72.5\" y=\"-54.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;complex128&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452205680&#45;&gt;leaf139658452208704 -->\n",
       "<g id=\"edge29\" class=\"edge\">\n",
       "<title>node139658452205680-&gt;leaf139658452208704</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M136.51,-78.01C172.32,-91.02 224,-117.5 224,-162 224,-162 224,-162 224,-200 224,-217.5 242.54,-265.96 250.95,-287.01\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"136.71,-76.96 133.53,-76.94 136.01,-78.94 136.71,-76.96\"/>\n",
       "</g>\n",
       "<!-- node139658452205680&#45;&gt;node139658452208464 -->\n",
       "<g id=\"edge28\" class=\"edge\">\n",
       "<title>node139658452205680-&gt;node139658452208464</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M103,-85.48C103,-91.52 103,-98.21 103,-103.94\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"104.05,-85.19 103,-82.19 101.95,-85.19 104.05,-85.19\"/>\n",
       "</g>\n",
       "<!-- node139658452209376 -->\n",
       "<g id=\"node25\" class=\"node\">\n",
       "<title>node139658452209376</title>\n",
       "<polygon fill=\"#fdd66c\" stroke=\"black\" stroke-width=\"0\" points=\"75.5,-30 14.5,-30 14.5,0 75.5,0 75.5,-30\"/>\n",
       "<text text-anchor=\"start\" x=\"41\" y=\"-21.4\" font-family=\"Consolas\" font-size=\"12.00\" fill=\"#444443\">=</text>\n",
       "<text text-anchor=\"start\" x=\"35\" y=\"-11.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">2kx1</text>\n",
       "<text text-anchor=\"start\" x=\"14.5\" y=\"-2.8\" font-family=\"Arial\" font-size=\"9.00\" fill=\"#444443\">&lt;complex128&gt;</text>\n",
       "</g>\n",
       "<!-- node139658452209376&#45;&gt;leaf139658452095280 -->\n",
       "<g id=\"edge30\" class=\"edge\">\n",
       "<title>node139658452209376-&gt;leaf139658452095280</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M40.57,-33.44C35.83,-53.65 29,-88.01 29,-118 29,-118 29,-118 29,-200 29,-233.22 15.08,-270.86 8.02,-287.84\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"41.7,-33.24 41.37,-30.08 39.65,-32.76 41.7,-33.24\"/>\n",
       "</g>\n",
       "<!-- node139658452209376&#45;&gt;node139658452205680 -->\n",
       "<g id=\"edge31\" class=\"edge\">\n",
       "<title>node139658452209376-&gt;node139658452205680</title>\n",
       "<path fill=\"none\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" d=\"M64.11,-32.47C71.42,-38.77 79.67,-45.89 86.69,-51.94\"/>\n",
       "<polygon fill=\"#6b6b6b\" stroke=\"#6b6b6b\" stroke-width=\"0.5\" points=\"64.42,-31.36 61.47,-30.19 63.05,-32.95 64.42,-31.36\"/>\n",
       "</g>\n",
       "</g>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "display(SVG(\"/tmp/ast.svg\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Show specific code w/o need of a `with` statement:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:matplotlib.font_manager:findfont: Font family ['Consolas'] not found. Falling back to DejaVu Sans.\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnkAAACJCAYAAABQBC6RAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAABYlAAAWJQFJUiTwAAAiZ0lEQVR4nO3dd7hcVb3/8fc3QAgh0otB6b0HVHoAcS8sEWliBbFQRESQoiAlRqRcUVCpIioIqCjt4oULri2CBPiFZqgJHRQvktAhBQis3x9rDWdnMnPqnCl7Pq/n2c+c2WX2mln7zP7OqhZCQERERETKZUSrEyAiIiIijacgT0RERKSEFOSJiIiIlJCCPBEREZESUpAnIiIiUkIK8kRERERKSEGeiIiISAkpyBMREREpIQV5IiIiIiWkIE9ERESkhBTkiYiIiJSQgjwRERGRElKQJyIiIlJCC7c6Aa3gXDYaeIX4/s/0Pv9WL/teA+ySnh7sfX5OL/s+AawO3Oh9/pEGJln6wbnsQmBf4Gbv8x1bmxqRwXMu2xH4G/Bh7/ObGvi6KwO7Ah8CNgZWBJYD3gSeSuc8x/t8eqPO2YnK/l1SuL4AVvc+f6oFaRgP/B2YCmzufR6aeO4LaYP8dS67AdgZ2Mv7/PLhOEdXBnne57Ody+4BtgC2q7efc5kB2xZWbQfUDPKcy95HDPAAbmlQUoeVc9lIIAM+BWwJjAWWBV4HHgMmA5d5n/+/liVSRBppV+DMGutHAhul5evOZYd7n5/V1JRJR3Eu+z4wEXja+3y1QbzEj9Ljic0M8NrMicQg7yTnsqu9z+c1+gTdXF1bCcQ2cS57T519NgCWAd5Iz+sGhFXb2jrIcy4z57IvAA8D1wIHAuOIv+oXBpYCPggcBtzuXHazc9k6LUmsSBdwLjvWuWyDPvbZwLns2CGeag7xf/4IYCdgPWJJ3obAfsQfd4sAZzqXTRjiuURqci7bE9gKuB+4qsXJaRnv88nATcA6wNeG4xxdWZKX3EL8olsI2Br4S419KoHbtcAOwMrOZat4n/+zl33nAW1b8uVcNgb4HT1V0PcBlwK3EatrZgPvJZZK7grsAWwP3OtcdkRv1dXSHpzLVgOeBPA+t9amRvriXLYMcAAw0bnsJ8Rf98Xto4ETgMOBZ53LzvU+f3Ew5/I+/xXwqxqbXgAeci67AngQWAk4ivjd13C6Rrve99LjOV1cildxFrAjcLRz2fmN/jy6OcibDATAgPHUDvLGF/ZdhBgYjScGRdUqQd493uezGpvUxnAuW4rYDmMc8C/gEO/z/66x64vAQ8C1zmWHAycB3wTOdi6b531+fnNSLFJ+3ucvOpetC3wLOAb4PHBZ2vxx4EJgSeA44Ofe53OHMS0vp0DvEOADw3Ue6V7OZZsDmwNvAX9qcXLawbXAa8BqxOZTvpEv3rVBnvf5C85l04H1qV8NW1k/mdhmZZe0br4gL1X3bpyetmVVbWpfeDExwLsbmOB9/lxfx3mfvw4c6lz2V+By4Fznsme8z68bzvQ2QmpcfASx7eUSwNPEL5X/Su9L2phz2beAn6Wne3qfX1ljn5HAFOJ1/TgwrhPzNgVuP3IuuwA4nthUgvR4NvDDwZbeDcJb6fGNXvfqIs5lHwK+Q/z+Xxr4N3A1MV9eamHS6nIu24n4/bcVsBixpuZPwGm9HLMWscQ4A94PvE0scf0f4HTv8+erOm0ArOpcVl36dJH3+ZfrnGa/9PgX7/MXBvCWhk0r89f7fK5z2VXAl4ifTUODvG5ukwc9AdkWzmWLFDc4l70fWJVYffkP4Na0qVZAuA2x2rf4mu3mYOCTxJ5MO/QnwCvyPr8G2Id4zZznXLZ4w1PYQM5l3wD+SnzPKwCjgHWJpSF3O5eNbWHypH/OBG5If5/vXLZSjX1OIgZ4bwN7d2KAV0P1DbOZvQ5HETtiAdzZrPO2M+eyvYnf/58mNmVZFFiDGAzd6ly2ZAuTV5Nz2dHE779PENuVL0Ys0DiB+KNomRrH7EOswTkIWDsdM4ZYgHEM8IhzWW/t0vtrj/R4Q697NUmb5O/16fFT6YdrwyjIi0azYNVEpap2SurxchdxmIENncuWrtq3cuEHYqlfW0lteo4jpv9Lxepk57KFncuOcC57yLlsrnPZf5zLLnYuW736dbzPLwN+D6xM7H7ertYGfgrcAXwEWJ7YwPy/gHeIjVwvT6Wb0qZS25SvENuLLQtcWMwz57IPE7+IIf7ibtu2sH1xLlvUuewoYmnkHvSUYP6MePN53LnsKOeyRYfh3COcy8Y6l32KOKTFWsTviomNPlcHWhu4ALiR2C57OXq+XyAGTse1JGV1pA4zp6SnDwATiD901yIGeWsBP6k6Zgdis4BFiJ1v9iIGPKsAXyc24VmaWLX4NPCewjn+mZ4XlwPrpG0dYgc/iPfUVmuX/K38oBpFHN6oYbq2ujYplrptx/wdJiqB263wbpHq3cROGtsSi6+r953WLsXPVfYl/mP9yPv8/spK57IRwBX0/HIn7bc3sEtqBP5d4GTv85PT9lOJbYa+TJ3hZNrASsA9xDHGKu2Xnic2bJ1B/ILbhnjzVJuQNuZ9/qxz2X7EHniOWH15RmpfehHxh+oU4IetSuNQpY4X9xCv29OBHxCbGBwFXAd8nxhwnQQc7Fy2eSOqbp3Lrgc+WmPTw8CB3ud3DPUcJbAScA2wu/f5O2ndC8C305iDexKr2Y5qUfpq+XF6fAIY733+cno+Ezgxjed6SdUxZxL/l54BtvU+n1HY9gvnsinE++MSwCne559zLnszbQ8DKEGvFJ7MI9YqtVpb5K/3+WPOZS8RA+nt6ak5HLKuLsnzPn+a2AEBFqyGLbbHq1igyjZV826RnrZrVe0uxFLG6nGvvk4M8N4CjiY2/FwR+AIwF5gELE5sjwiA9/l9xF9um/cy9Ew7OKZOA/Wfknr1EQNVaXPe51fT0yP0FOeyjYFziSXKs4jVtA0fX6pZUsB2AbE94dHe57Orts/2Pv8usVr6l8PcNm8m8X/k7mE8R6c5vBAAFF2cHldwLlu1mQmqx7lsS2KtBcCkQoD3Lu/zS4m1HBWb0NOmfFJVgFc5Zirwi/R0z/QjazAqwwQ9630+Z5Cv0Wjtkr9PpMcNG/mi3V6SBzGI+zyFQY/TBbwRsWqvWLp3K3AkPb9GIPYSGp3+brsgLwWhOwJTvc//VbX5sPT4Pe/zHxfW/9657CnisCq13Ecsxl+VWB3Qbl4ntkdZgPf5O2kWk0OBbZzLrBO78DuXLURsM1PL6MJ+Y+q9Roe1XzuMWJ2yFjFvl0/rD/U+f6xViWoU7/M+SyK9zx8itplqlN2I94ARxOrw7Yhtr84FDnEu+6T3+ZP1D+9dSa7Rx73PH6+z7dHC3ysSqzFbbZv0GIglVPVcRU/hxAcL6xfo3FTwJ2IP8IWJnTkGo/J/2y6dVdopfyufyXKNfNGuLslLKoHZcs5l66e/tyF+Ng94n79S2LcS9Hyg0DamGPC1XZBHbFexGLHzyLvSDB1rEzuWLDACvvf57czfg6qo8pks0bhkNtSj3udv97K9MmXTUrTve+jLeGK3+1rLg4X96u3zWjMTO1TpZr83sZqncqO4Ko37JoPgfT7X+/x17/NXvc+f9D6/mNg2eQqxxOW/U5OOwSrDNfpsL9uKJa71gtlmWy09/qdWKV5Bcdq69xeO6a2UuJhnqww8aUBPANMuQV475W/ls1++170GSEHegu3yio/zdaJIxdiPEnvfbFG17z/rDJLcapVGrtVF8JV/7Me8z+sNlfBgnfWV3kav1Nnean2NU1gsHahbiiBt5zHmvzn8rlUJGW7e5zd5n1sj563t53nnEJtuQKzC26mZ529Dvf1YLGqXTlyVUQ8G8h04usa6WopBdzs31RmITsvfAVN1bQxkXiR2KR8P/JKe0rlajR9vJZaAjScGiJVq3nYsxYOei7M6ryvre6uqrNVOAWIbjreI4y61o76GdykGdq2uDhqUdPOv+cVT4tkEzmf+X7k/cy67sYnjx3WLKYW/NwPywbxIl16jrVYJ7gbyHTi7xrq+jnmNwQV6z6fHBYZwkXc/k5mNfNGuL8lL7bHe7VCRxqiptFGoNRxKcd/KvI/QvkFepQRvxar1/5ce16weI7BgveoVqav9KsDt7TqzB7B2ag9UT+V9vQy8OvzJkaFyLvsqPeNrTSQG5ysB57UsUeVV/EHYce1Vu9xT6fG9fYzvVvxuf6ZwTPXwYEXFDgGDbZ9WCWB6O0+3qnwmCvKGQSWYW53YGHkU8Eyd6tdKkLcNsatzRbsGef8hlrqNK65M7+1p4q+zA6oPci7bhDjqeXHdEvT00D19GNLaKGOI4+MtILUxqgwZc1sndrroNs5la9Azbtwfvc9/QOw4A7CXc1k7j9nYiYrfa0/U3UvaUaXduBHnHq9nt8LfxUGv96C+T6fHecTS3srMKL39oK5W6Tg0No3fKj3WSI/1mkkNioK8qBigVdqj1BvUeDqxendJ4hAkEMfVmTY8SRua1N7uVmDjNO5PUaXDxWnOZQc5ly3jXLaYc9nHiFO6VK6PUc5luxB7Gm8EXFpnztt2ckoavb/aYcRgHuLgn9LGUonsJcTA/RnS/5z3+a+JPQQBfp6q/6QPqfaht+1LEwcNh1glN6iqWmkN7/MpxHEOASbWGurEuewLwJaFVfenpXLMAr0704/+g9LTK1KnjsqYsMs5l/W36VflXrsQsSmA8O50cpWSvIYWGKlNXnQ3MIfYg6Zy4dUcjND7PDiX3UacLquy7+Q2LxG6jjiMysH0BLEQS0c+Tiz1Oof5BzeeTRz4+GjigMgVF6TXaWf/R2w0fqNz2bHEIV+WJc6e8J20z23EuXilvR1LHIA8APtWzSO5P3Eoh7HAxc5lO9QZ70p6POBc9mdigHw38Byx7e1KxE4WRxLHH4Q41qSaM7RQ1TyxX/E+v7Afhx1BHKx/DeDvzmXfJZbWLUEcA/V4YrXuaoVjDiHO+rAycSqvo4n3wJHEe8QpxA6Hr9JzD7knPY4CTnAuO4eeNnfv1Ppf9D5/JA1IvwJxZoeGDfrb4SqzXMylwdMJqiQP8D5/k/kbG0Pv05NVX5jtWlVbcQGxJ+whxdK8NIDsJ4kj7FfaZcwC/kzsPTyFWDT/FHF2ga29z/dPn1c7exT4NjEAuJH4xfMw8ctpBPAI8Ok2D8y7nnPZFsQbEsAZ3uc3Fren2WW+QgwAt2P+HzBS20LEqrqLiGNcziSWyNxP/NG3MvFGc7j3+dktSqMMgff5tcTxDiH+2L2OmM+PAyemxyOqjrmZODj8W8RpH68k/gD4F7HD07LEnu0TvM+fSsfcQc84sscThyN5Ky2/7iWJV6THWrOtdKud0+OfG31/VZDXoxiovUZP8XUtHRXkpdKP04ld5a8oVmOmsbImep+vDIz0Ph/jff4p7/MHgWu8zxfxPl/d+/zLnTQ3aLpBOXq+4N4gBncnAR/wPu9tfCRpMeeyxYnVtAsT/xe/V2s/7/Mb6Gkn+n3nsuo5qGV+2xOnSbuReLN/nThP7UzivLWTgHW9z89oVQJl6LzPTyXW0PwvMTibQ/yhezKxqnaBHulpnMQNiZ2ZHkvHzCL+/50CrON9Xl348QnivWU68cdBf/wyPWa1qoa7TbofV9pCXtDo17cQVJjRDVIP2r8Rh3y5HvjsQKpinMuWrBoYWkREZMCcy+4iDrx9sPd5u86B3hTOZXsQSzefBtZodJMTleR1Ce/zt4C9iL3lPgbc4Vzm+jrOuex9zmW/A6b20b1eRESkP05Ojwc5l3X7OInfTI+nDkebYpXkdZlUPH4VPTN13E5sf/F3YoeFOcQBZz8ATCB2m1+E2C5vV+/z+5qcZBERKRnnstuJ7aY/7X1+RV/7l5Fz2bbE9v+PABumdvINpZK8LuN9/jyxF92hxA4JWwOnETtZ/Cutm0ZsD/V5YseLnwObKsATEZEGqYx0cFwXl+adkB6PHY4AD1SS19Wcy8YQe9fuQhwOZixxGJkZxAEZrwf+4H3+XMsSKSIiIoOiIE9ERESkhFRdKyIiIlJCXTXjxS233DLkYsvx48d3a9uBtjTUPFV+thf9j0or6Lort27OX1XXioiIiJSQqmtFRERESkhBnoiIiEgJdV2QZ2YfNbNbzGy2mb1uZrmZbVXYfpOZPdXCJEoDmdn5ZnZTq9MhjaM8leGg66r8ujGPuyrIM7MdiBM2LwUcS5yMe03gZjPbooVJk2FgZl8D9m91OqRxlKcyHHRdlV+35nFXBXnAT4mzOmwZQjgjhHAacVqVWcBJrUyYNI6ZLWRmJwC/bHVapDGUpzIcdF2VX7fncdcMoWJmSwObAj8JIcyurA8hPGdmNwM7tyxx0jBmNoo4RdsmwG+Bj7Q2RTJUylMZDrquyk953F0lea8C6wJn1Ni2HHGO1gWY2Rgzm5La7203nAmUhhgFLAF8NoSwL3XyVTqK8lSGQ5/XlZk9ZWZnmdl+ZvaImc0xszvNbAsze6+Z/dHMXjOzf5vZyWbWTffUTtD1edw1JXkhhLeBR6vXm9kmwLbADTW2jQSuIv4KmBBCmDzc6ZQhexVYO4SgQKA8lKcyHPp7Xe0G7EFs7jOC2J77CuAV4AHgCGBP4BjgYeCi4UmuDELX53HXBHm1mNkYYhEuwKlV20YAvwO2B3YPIdzY5OTJIIQQ3gHeaXU6pHGUpzIcBnBdrQRsGkK4H8DMlgGOAm4NIXwurbsUeJHY7KdjAoCyUx53V3XtfMxsNHANsZ3eqSGEm6t2OY8YuR8QQriu2ekTEZG28Hjl5p88kh6vqqwIIcwCZgBjm5kwaZjS5nFXBnlmthTwF+DDwK+JRbNFqwL7pb+3bV7KRESkzTxX9bxS9Tejav3bdOk9tQRKm8cdldhGMLMVgL8Rg7fzgf3CghP4BuDrwMXAfmamQE9EpDvVa8+lid/Lo7R53FVBnpm9h9jBYhxwRgjhwBoBHsA/QwjnE+vkXwV+YWaLNC+lIiIiIkPTVUEecDYxwPtZCOHwvnYOITwHnABsCBw5vEkTERERaZyu6V1rZusD+wAvA1PNbO/qfUIIl9Q49Gzgq8DxZvaHEMKTw5pQERERkQbomiAP2CE9LgX8ps4+CwR5IYS3zewbwGTgHODjw5I6ERERkQay2k3S2tekSZNWJc5Q0Wmenzhx4tOtTkRZDfC6UF50gAHkqfJTdG8oOeXv4HRUkJcyeTpxqpJOMxdYT//MjTeI60J50eZSnk4DFuvH7nOA9ZWf3WvSpEmrBphuHXhvCDDX9H3UK+Xv4HVade1ywKgVtnzftEWXHjWr1Ynprzdemrv4jCn/Xp+Yfv0jN16/rwvlRcdYDlhsmY1XuGrUsqNn1ttp7guzl3/x/hm7o/zsdssZjArLbTqNkUt2zL2BN19Z3J6/V99HfVP+DlKnBXkALLr0qFmLj33P661Oh7QXXRflM2rZ0TOXWH2pZ1udDukQI5ecxejl9R1QVsrfAeu2IVREREREuoKCPBEREZESUpAnIiIiUkIK8kRERERKSEGeiIiISAkpyBMREREpIQV5IiIiIiXUkePkiYiILODNVxZvdRIGpNPS22qd9nm1QXoV5ImISKd7PsDcNLtAR0nTXj3f6nS0OeXvICnIExGRjjZx4sSnJ02atB4dOIG9tXgC+06g/B08BXkiItLx0o1UwVJJKX8HRx0vREREREpIQZ6IiJSamZ1tZle1Oh0yPJS/9bUsyDOzbfrYvqqZXdus9Eh70HVRLspPaRPHAfv0d2czO83MbqixfqyZXWRmM81srpk9ZGY71HmNY8wsmNlZQ0i39I/yt45WluRdX+vDM7OFzOy7wIPAR5ufLGkxXRflovyUpjKzNVPJzmcq60IIL4UQXh/Ay2wB3FH1uksBtwIGTADWBw4BZtRIw1bAAcB9Veu3NbNLzGzcANIiBcrfgWllkDcNuM7M3v2CN7OtgX8ApwCPAuNblDZpHV0X5aL8lKYws63M7ArgYWBd4P60/v2pxGW9que7mtn1ZjbLzB43sw+b2UgzexPYHjgu7fdQOsV3gGdDCF8KIdwRQngyhPDXEMK0qnQsCVwKfBV4qSqZTwCjgbvMzJvZzsP0cZSO8ndwWhnk7QTcBlxtZvuY2XnALcDKwKHAB0IIt7cwfdIaui7KRfkpw8aiXc1sMnAT8AqwWQghK9ycNwVmA48UngMcDvw4PX8AOB2YB2ydtm8JjAW2Tc93A6aY2WVmNsPMpprZN83MqpJ1PnB5COFv1ekNITwbQtgDWAd4CLjczO5N/xuLDP6TKCfl79C1bAiVEMIsM/sE8HvgIiAAlwBHhRAWKB6V7qDrolyUnzLMtgeuBv4ErBpCeK7GPuOA+0MI7xSevwp8NoTwHwAzuxw4JYTwjpmNBV4D7gwhhMLrrAF8AzgDODW9zplp21npdfYH1gL27i3RIYQngEPN7ATgROC3xEKXi/r5vruF8neIWtq7NoTwFrAX8Evil/8t+uIXXRflovyUYfQQ8Qa6K/AbM8tq7LMpMLXq+bWVACBZC3gs/b0ZcG9VAADxfnlPCOGYEMI/Qgi/AX4OHAxgZusCJwNfSNd8r8xsC+AXwIHEQGZyX8d0IeXvEDUtyDOzJ2otwOOAS2k5r2r7481Kn7SGrotyUX5KM4UQZoYQ9gXWJAYEV6bqsX3NbGTabRzzBwHjgOomApsV9hlHbDNa7dl0jqJpwCrp762JMzI8aGbzzGwesAPwjfR8UTMbYWa7p+rHvxNLlDYOIeweQtD/QRXl79A1s7r2n8Rf8fVoJOvupOuiXJSf0nQhhGeAI83sROAgYqeeSjXdmqQbvJktnp5X3+Q3A65Mf28K/G+N09xKbPBftA491/TVwF1V239D7Fx0MlBp8P9r4FxgzzrVj1JF+Tt4TQvyQgg7Nutc0jl0XZSL8lNaKYTwCnCqmZ0OLA1skjZVhrqoPJ9aOcbMlgXeX1i3MLCema0EzA4hvJzWnwHcZmbHApcRA4dvAd9L534ZqOxbee1ZwIshhAfS8/uAlQc43Ickyt+Ba2qbPDP7oJndYGavmdlLZvY/ZrZdnX2/mIpDpeR0XZSL8lNaLYTwZipF2RR4NIQwO22qPC/ehDcD3qKnqu5Y4HPAM6QSo/SadxJ7YH6G2FvzJOB44JwBpGug47lJDcrf/mtaSZ6ZbQncDMwCPLFu++PAx8zslBDC8bUOa1b6pDV0XZSL8lPaSQjhPOC8es/TuhwYWXh+KXEctFqvdy3Q7xlaVLI9vJS/fWtmm7wfAv8Gtq70rDOzTYg9Z75nZiuGEA5oYnqkPei6KBflp4hIm2hmde1WwDnFoRNCCPcRByK8GfiamfW7WFRKQ9dFuSg/RUTaRDODvBHE0abnE0KYRZwn7nbgQDM7rYlpktbTdVEuyk8RkTbRzCDvHuCrZrZo9YYQwhziDeA+4HAz+wktnI1DmkrXRbkoP0VE2kQzg7wfAhsB083sVDN7b3Fj6hq9M/EGcBhxnjkpP10X5aL8FBFpE00L8kIINxAnK38ZOBJYvMY+M4HxxJ4vSzcrbdI6ui7KRfkpItI+mjpOXgjh5hDCZsRhFZ6ss8/rIYQvARsQJwuWktN1US7KTxGR9tCS9jCFEaZ722c6MH34UyPtQtdFuSg/RURaq6kleSIiIiLSHAryREREREpIQZ6IiIhICSnIExERESkhBXkiIiIiJaQgT0RERKSEFOSJiIiIlJCCPBEREZESUpAnIiIiUkItmfFiqN54ae4C82G2s05Lb6fqz+esvOgsc1+YvfxQtouIdLNOC/KeB+bOmPLv9VudkEGYS0y/NN5ArwvlRft7Hpjz4v0zdu/HvnNQfoqILMBCCK1Ow4BMmjRpVeLE553m+YkTJz7d6kSU1QCvC+VFBxhAnio/RURq6LggT0RERET6po4XIiIiIiWkIE9ERESkhDo2yDOz/c3sCTObZ2bnm9mpZuZbnS4ZHOVn+ShPRURaqyODPDNbDzgXOAJYGTgcGAdMbfB5TjOzG6rWjTWzi8xsppnNNbOHzGyHOscfY2bBzM5qZLrKRvlZPq3KUzM72MzuM7NX03K7mU2oOuYYM7szbZ9pZn82s40amS4RkXbQ9kGema1pZmeb2WcKqz8FPBBCuCqE8GwI4XXiDeQfDT79FsAdhbQsBdwKGDABWB84BJhRI91bAQcA91Wt39bMLjGzcQ1Oa0dQfpZPO+Up8AzwXWBz4IPAjcDVZrZJYZ8dgXOAbYCdgHlAbmbLpPfT9XkqIiURQmjLBdgKuIL0BQysn9Y/AoTCchXw3vT3Bmmf9YFrgFeIN+yzgMWqXv844g37dWAmcGFlH2Ak8GbVeR4CTgZu7UfalwQeBz4M3AScVdg2FrgyvS8P7Nzqz1r5qfwsS57WSeeLwIG9vI8xwNvALt2ep1q0aCnX0lYleRbtamaTiTfTV4DNQghZCGFa2m074k3kOOKX8b7EEoI5wMPpF/vtwHTgQ8AewCeBH1SdbmHgIGBD4POAAw5L2+YBW6e/t0zn2RbYDZhiZpeZ2Qwzm2pm3zQzq3rt84HLQwh/q36PIZZq7AGsQww0Ljeze81sHzNbpN8fVgdQfpYrP6Ej8rSY1oXM7HPEIO62Xt7We4i1Gi9B9+WpiJRYq6PM4gLsQPxF/kdgxTr7jALeAnYsrDsamJL+ngL8quqY7wAP93Hu84GLCs8/CbxKGkswrZubllOAzYCvEEsZvlnYZ3/gbmCR9PwmCiU/Nc67JPDz9L73bXUeKD+Vn52cp2n9xikf5wEvAxP6eN0/EquRF+rGPNWiRUt5l3ab1uwh4LfA54AxZnZ6CCGv2mcj4i/8qYV144CpZrYusY3OflXHvAEsWnliZisDRxGr395HrPpZFPhR4ZjNgHtDCMXRokcAd4UQjknP/2FmawMHA2el858MbBdCeKuvN2tmWxAbpO8OXA1M7uuYDqP8LJ92z1OAh9P5lgQ+DVxkZjuGEB6ofjNmdjqx5HG7EMLbNbZ3Q56KSEm1VXVtCGFmCGFfYE3izeTKVE2yr5mNTLuNA54OIbxcOHQc8YayEbFtzTTmtwFwP4CZLQvcSWwjdCQwnthAey4L3pSqG4k/m9JVNA1YJf29NXEapgctDhsxj1jy8Y30fFEzG2Fmu6fqrr8DrwEbhxB2DyE83usH1GGUn+XKT+iIPCWE8GYI4bEQwt0pgJ8KfLt6PzM7g1gNvFMI4YnC+q7KUxEpr7YK8ipCCM+EEI4kDr3we2J12ufT5nEUvujNbDSwNvHL/jXiexpZ2L4i8EXg0rRqArE66bMhhBtCCA8S2/SMYf4byKZU9aQk9sRct2rdOkBl3syriVVF4wrLXcAf0t9vEm9YvybePFYNIewfQnikt8+j0yk/y6eN87SWERRKCdM5f0ZPgDe9av+uzFMRKaFW1xf3ZyHeEFZMf08Gvl/YthWxZGA0sXpmJrH9zJrA9sA9xJt1ZZ7eCcS2OrsDaxGHzHiWBdtrPQX8GFgJWCqt+xCxrdGx6di9iA3PD+4l7Tcxf2/MpYExrf5MlZ/Kz5Lm6anEIG01YoB+CvAO8PHCcWen19qJWFpYWcYoT7Vo0VKmpeUJGFBi43hmrwK7FdZ9HZheeL4NsapnNvAkMBEYWfUalS/5Gelm82NgctW5vkgcc+sd4NzC+gnAvcSqo0eAb1HV8LvqdeYLCrQoP8u8tDpPicOsPE1s4zeDOLTLR6uOC3WW77f689OiRYuWRi6VX84iIiIiUiJt2SZPRERERIZGQZ6IiIhICSnIExERESkhBXkiIiIiJaQgT0RERKSEFOSJiIiIlJCCPBEREZESUpAnIiIiUkIK8kRERERKSEGeiIiISAkpyBMREREpIQV5IiIiIiWkIE9ERESkhBTkiYiIiJSQgjwRERGREvr/dtRNH2YhgQYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 390.024x54.9551 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 68,
       "width": 316
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%config InlineBackend.figure_format = 'retina'\n",
    "\n",
    "fig, ax = plt.subplots(1,1)\n",
    "tsensor.pyviz(\"W @ b + x * 3 + h.dot(h)\", ax=ax)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns=\"http://www.w3.org/2000/svg\" width=\"302.2686pt\" height=\"53.367597pt\" viewBox=\"0 0 302.2686 53.367597\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2022-04-07T13:48:21.366445</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.5.1, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 53.367597  L 302.2686 53.367597  L 302.2686 0  L 0 0  L 0 53.367597  z \" style=\"fill: none\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 14.88465 45.606878  L 37.73475 45.606878  L 37.73475 23.346458  L 14.88465 23.346458  z \" clip-path=\"url(#p226797e08c)\" style=\"fill: #a8e1b0; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 81.95346 45.606878  L 87.17634 45.606878  L 87.17634 23.346458  L 81.95346 23.346458  z \" clip-path=\"url(#p226797e08c)\" style=\"fill: #a8e1b0; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 140.20866 45.606878  L 145.43154 45.606878  L 145.43154 23.346458  L 140.20866 23.346458  z \" clip-path=\"url(#p226797e08c)\" style=\"fill: #a8e1b0; fill-opacity: 0.5; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 210.24045 28.434554  L 233.09055 28.434554  L 233.09055 23.346458  L 210.24045 23.346458  z \" clip-path=\"url(#p226797e08c)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 270.50445 28.434554  L 293.35455 28.434554  L 293.35455 23.346458  L 270.50445 23.346458  z \" clip-path=\"url(#p226797e08c)\" style=\"fill: #7fa4d3; fill-opacity: 0.75; stroke: #808080; stroke-width: 0.7; stroke-linejoin: miter\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_1\">\n",
       "    <path d=\"M 22.39254 13.619216  L 30.22686 13.619216  \" clip-path=\"url(#p226797e08c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_2\">\n",
       "    <path d=\"M 80.64774 13.619216  L 88.48206 13.619216  \" clip-path=\"url(#p226797e08c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_3\">\n",
       "    <path d=\"M 138.90294 13.619216  L 146.73726 13.619216  \" clip-path=\"url(#p226797e08c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_4\">\n",
       "    <path d=\"M 217.74834 13.619216  L 225.58266 13.619216  \" clip-path=\"url(#p226797e08c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_5\">\n",
       "    <path d=\"M 278.01234 13.619216  L 285.84666 13.619216  \" clip-path=\"url(#p226797e08c)\" style=\"fill: none; stroke: #c2c2c2; stroke-width: 0.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- W -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(23.0454 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-57\" d=\"M 213 4666  L 850 4666  L 1831 722  L 2809 4666  L 3519 4666  L 4500 722  L 5478 4666  L 6119 4666  L 4947 0  L 4153 0  L 3169 4050  L 2175 0  L 1381 0  L 213 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-57\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(45.6444 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- @ -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(52.173 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-40\" d=\"M 2381 1678  Q 2381 1231 2603 976  Q 2825 722 3213 722  Q 3597 722 3817 978  Q 4038 1234 4038 1678  Q 4038 2116 3813 2373  Q 3588 2631 3206 2631  Q 2828 2631 2604 2375  Q 2381 2119 2381 1678  z M 4084 744  Q 3897 503 3655 389  Q 3413 275 3091 275  Q 2553 275 2217 664  Q 1881 1053 1881 1678  Q 1881 2303 2218 2693  Q 2556 3084 3091 3084  Q 3413 3084 3656 2967  Q 3900 2850 4084 2613  L 4084 3022  L 4531 3022  L 4531 722  Q 4988 791 5245 1139  Q 5503 1488 5503 2041  Q 5503 2375 5404 2669  Q 5306 2963 5106 3213  Q 4781 3622 4314 3839  Q 3847 4056 3297 4056  Q 2913 4056 2559 3954  Q 2206 3853 1906 3653  Q 1416 3334 1139 2817  Q 863 2300 863 1697  Q 863 1200 1042 765  Q 1222 331 1563 0  Q 1891 -325 2322 -495  Q 2753 -666 3244 -666  Q 3647 -666 4036 -530  Q 4425 -394 4750 -141  L 5031 -488  Q 4641 -791 4180 -952  Q 3719 -1113 3244 -1113  Q 2666 -1113 2153 -908  Q 1641 -703 1241 -313  Q 841 78 631 592  Q 422 1106 422 1697  Q 422 2266 634 2781  Q 847 3297 1241 3688  Q 1644 4084 2172 4295  Q 2700 4506 3291 4506  Q 3953 4506 4520 4234  Q 5088 3963 5472 3463  Q 5706 3156 5829 2797  Q 5953 2438 5953 2053  Q 5953 1231 5456 756  Q 4959 281 4084 263  L 4084 744  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-40\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(58.7016 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- b -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(81.3006 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-62\" d=\"M 3116 1747  Q 3116 2381 2855 2742  Q 2594 3103 2138 3103  Q 1681 3103 1420 2742  Q 1159 2381 1159 1747  Q 1159 1113 1420 752  Q 1681 391 2138 391  Q 2594 391 2855 752  Q 3116 1113 3116 1747  z M 1159 2969  Q 1341 3281 1617 3432  Q 1894 3584 2278 3584  Q 2916 3584 3314 3078  Q 3713 2572 3713 1747  Q 3713 922 3314 415  Q 2916 -91 2278 -91  Q 1894 -91 1617 61  Q 1341 213 1159 525  L 1159 0  L 581 0  L 581 4863  L 1159 4863  L 1159 2969  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-62\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(103.8996 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_7\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(110.4282 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-2b\" d=\"M 2944 4013  L 2944 2272  L 4684 2272  L 4684 1741  L 2944 1741  L 2944 0  L 2419 0  L 2419 1741  L 678 1741  L 678 2272  L 2419 2272  L 2419 4013  L 2944 4013  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_8\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(116.9568 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_9\">\n",
       "    <!-- x -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(139.5558 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-78\" d=\"M 3513 3500  L 2247 1797  L 3578 0  L 2900 0  L 1881 1375  L 863 0  L 184 0  L 1544 1831  L 300 3500  L 978 3500  L 1906 2253  L 2834 3500  L 3513 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-78\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_10\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(162.1548 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_11\">\n",
       "    <!-- * -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(168.6834 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-2a\" d=\"M 3009 3897  L 1888 3291  L 3009 2681  L 2828 2375  L 1778 3009  L 1778 1831  L 1422 1831  L 1422 3009  L 372 2375  L 191 2681  L 1313 3291  L 191 3897  L 372 4206  L 1422 3572  L 1422 4750  L 1778 4750  L 1778 3572  L 2828 4206  L 3009 3897  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-2a\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_12\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(175.212 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_13\">\n",
       "    <!-- 3 -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(181.7406 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-33\" d=\"M 2597 2516  Q 3050 2419 3304 2112  Q 3559 1806 3559 1356  Q 3559 666 3084 287  Q 2609 -91 1734 -91  Q 1441 -91 1130 -33  Q 819 25 488 141  L 488 750  Q 750 597 1062 519  Q 1375 441 1716 441  Q 2309 441 2620 675  Q 2931 909 2931 1356  Q 2931 1769 2642 2001  Q 2353 2234 1838 2234  L 1294 2234  L 1294 2753  L 1863 2753  Q 2328 2753 2575 2939  Q 2822 3125 2822 3475  Q 2822 3834 2567 4026  Q 2313 4219 1838 4219  Q 1578 4219 1281 4162  Q 984 4106 628 3988  L 628 4550  Q 988 4650 1302 4700  Q 1616 4750 1894 4750  Q 2613 4750 3031 4423  Q 3450 4097 3450 3541  Q 3450 3153 3228 2886  Q 3006 2619 2597 2516  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_14\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(188.2692 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_15\">\n",
       "    <!-- + -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(194.7978 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-2b\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_16\">\n",
       "    <!--   -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(201.3264 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-20\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(218.4012 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-68\" d=\"M 3513 2113  L 3513 0  L 2938 0  L 2938 2094  Q 2938 2591 2744 2837  Q 2550 3084 2163 3084  Q 1697 3084 1428 2787  Q 1159 2491 1159 1978  L 1159 0  L 581 0  L 581 4863  L 1159 4863  L 1159 2956  Q 1366 3272 1645 3428  Q 1925 3584 2291 3584  Q 2894 3584 3203 3211  Q 3513 2838 3513 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_18\">\n",
       "    <!-- . -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(235.476 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-2e\" d=\"M 684 794  L 1344 794  L 1344 0  L 684 0  L 684 794  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-2e\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_19\">\n",
       "    <!-- d -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(242.0046 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-64\" d=\"M 2906 2969  L 2906 4863  L 3481 4863  L 3481 0  L 2906 0  L 2906 525  Q 2725 213 2448 61  Q 2172 -91 1784 -91  Q 1150 -91 751 415  Q 353 922 353 1747  Q 353 2572 751 3078  Q 1150 3584 1784 3584  Q 2172 3584 2448 3432  Q 2725 3281 2906 2969  z M 947 1747  Q 947 1113 1208 752  Q 1469 391 1925 391  Q 2381 391 2643 752  Q 2906 1113 2906 1747  Q 2906 2381 2643 2742  Q 2381 3103 1925 3103  Q 1469 3103 1208 2742  Q 947 2381 947 1747  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-64\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_20\">\n",
       "    <!-- o -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(248.5332 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-6f\" d=\"M 1959 3097  Q 1497 3097 1228 2736  Q 959 2375 959 1747  Q 959 1119 1226 758  Q 1494 397 1959 397  Q 2419 397 2687 759  Q 2956 1122 2956 1747  Q 2956 2369 2687 2733  Q 2419 3097 1959 3097  z M 1959 3584  Q 2709 3584 3137 3096  Q 3566 2609 3566 1747  Q 3566 888 3137 398  Q 2709 -91 1959 -91  Q 1206 -91 779 398  Q 353 888 353 1747  Q 353 2609 779 3096  Q 1206 3584 1959 3584  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-6f\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_21\">\n",
       "    <!-- t -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(255.0618 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-74\" d=\"M 1172 4494  L 1172 3500  L 2356 3500  L 2356 3053  L 1172 3053  L 1172 1153  Q 1172 725 1289 603  Q 1406 481 1766 481  L 2356 481  L 2356 0  L 1766 0  Q 1100 0 847 248  Q 594 497 594 1153  L 594 3053  L 172 3053  L 172 3500  L 594 3500  L 594 4494  L 1172 4494  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_22\">\n",
       "    <!-- ( -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(261.5904 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-28\" d=\"M 1984 4856  Q 1566 4138 1362 3434  Q 1159 2731 1159 2009  Q 1159 1288 1364 580  Q 1569 -128 1984 -844  L 1484 -844  Q 1016 -109 783 600  Q 550 1309 550 2009  Q 550 2706 781 3412  Q 1013 4119 1484 4856  L 1984 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-28\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_23\">\n",
       "    <!-- h -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(278.6652 9.877969)scale(0.13 -0.13)\">\n",
       "     <use xlink:href=\"#DejaVuSans-68\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_24\">\n",
       "    <!-- ) -->\n",
       "    <g style=\"fill: #444443\" transform=\"translate(295.74 9.877969)scale(0.13 -0.13)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-29\" d=\"M 513 4856  L 1013 4856  Q 1481 4119 1714 3412  Q 1947 2706 1947 2009  Q 1947 1309 1714 600  Q 1481 -109 1013 -844  L 513 -844  Q 928 -128 1133 580  Q 1338 1288 1338 2009  Q 1338 2731 1133 3434  Q 928 4138 513 4856  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-29\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_25\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(13.0959 39.22909)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-32\" d=\"M 3222 541  L 3222 0  L 194 0  Q 188 203 259 391  Q 375 700 629 1000  Q 884 1300 1366 1694  Q 2113 2306 2375 2664  Q 2638 3022 2638 3341  Q 2638 3675 2398 3904  Q 2159 4134 1775 4134  Q 1369 4134 1125 3890  Q 881 3647 878 3216  L 300 3275  Q 359 3922 746 4261  Q 1134 4600 1788 4600  Q 2447 4600 2831 4234  Q 3216 3869 3216 3328  Q 3216 3053 3103 2787  Q 2991 2522 2730 2228  Q 2469 1934 1863 1422  Q 1356 997 1212 845  Q 1069 694 975 541  L 3222 541  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-6b\" d=\"M 425 0  L 425 4581  L 988 4581  L 988 1969  L 2319 3319  L 3047 3319  L 1778 2088  L 3175 0  L 2481 0  L 1384 1697  L 988 1316  L 988 0  L 425 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_26\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(21.557278 21.987458)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_27\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(9.8947 51.976347)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-3c\" d=\"M 350 2003  L 350 2528  L 3384 3809  L 3384 3250  L 978 2263  L 3384 1266  L 3384 706  L 350 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-66\" d=\"M 3059 4863  L 2969 4384  L 2419 4384  Q 2106 4384 1964 4261  Q 1822 4138 1753 3809  L 1691 3500  L 2638 3500  L 2553 3053  L 1606 3053  L 1013 0  L 434 0  L 1031 3053  L 481 3053  L 563 3500  L 1113 3500  L 1159 3744  Q 1278 4363 1576 4613  Q 1875 4863 2516 4863  L 3059 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6c\" d=\"M 1172 4863  L 1747 4863  L 800 0  L 225 0  L 1172 4863  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6f\" d=\"M 1625 -91  Q 1009 -91 651 289  Q 294 669 294 1325  Q 294 1706 417 2101  Q 541 2497 738 2766  Q 1047 3184 1428 3384  Q 1809 3584 2291 3584  Q 2888 3584 3255 3212  Q 3622 2841 3622 2241  Q 3622 1825 3500 1412  Q 3378 1000 3181 728  Q 2875 309 2494 109  Q 2113 -91 1625 -91  z M 891 1344  Q 891 869 1089 633  Q 1288 397 1691 397  Q 2269 397 2648 901  Q 3028 1406 3028 2181  Q 3028 2634 2825 2865  Q 2622 3097 2228 3097  Q 1903 3097 1650 2945  Q 1397 2794 1197 2484  Q 1050 2253 970 1956  Q 891 1659 891 1344  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-61\" d=\"M 3438 1997  L 3047 0  L 2472 0  L 2578 531  Q 2325 219 2001 64  Q 1678 -91 1281 -91  Q 834 -91 548 182  Q 263 456 263 884  Q 263 1497 752 1853  Q 1241 2209 2100 2209  L 2900 2209  L 2931 2363  Q 2938 2388 2941 2417  Q 2944 2447 2944 2509  Q 2944 2788 2717 2942  Q 2491 3097 2081 3097  Q 1800 3097 1504 3025  Q 1209 2953 897 2809  L 997 3341  Q 1322 3463 1633 3523  Q 1944 3584 2234 3584  Q 2853 3584 3176 3315  Q 3500 3047 3500 2534  Q 3500 2431 3484 2292  Q 3469 2153 3438 1997  z M 2816 1759  L 2241 1759  Q 1534 1759 1195 1570  Q 856 1381 856 984  Q 856 709 1029 553  Q 1203 397 1509 397  Q 1978 397 2328 733  Q 2678 1069 2791 1631  L 2816 1759  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-74\" d=\"M 2706 3500  L 2619 3053  L 1472 3053  L 1100 1153  Q 1081 1047 1072 975  Q 1063 903 1063 863  Q 1063 663 1183 572  Q 1303 481 1569 481  L 2150 481  L 2053 0  L 1503 0  Q 991 0 739 200  Q 488 400 488 806  Q 488 878 497 964  Q 506 1050 525 1153  L 897 3053  L 409 3053  L 500 3500  L 978 3500  L 1172 4494  L 1747 4494  L 1556 3500  L 2706 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-36\" d=\"M 2113 2584  Q 1688 2584 1439 2293  Q 1191 2003 1191 1497  Q 1191 994 1439 701  Q 1688 409 2113 409  Q 2538 409 2786 701  Q 3034 994 3034 1497  Q 3034 2003 2786 2293  Q 2538 2584 2113 2584  z M 3366 4563  L 3366 3988  Q 3128 4100 2886 4159  Q 2644 4219 2406 4219  Q 1781 4219 1451 3797  Q 1122 3375 1075 2522  Q 1259 2794 1537 2939  Q 1816 3084 2150 3084  Q 2853 3084 3261 2657  Q 3669 2231 3669 1497  Q 3669 778 3244 343  Q 2819 -91 2113 -91  Q 1303 -91 875 529  Q 447 1150 447 2328  Q 447 3434 972 4092  Q 1497 4750 2381 4750  Q 2619 4750 2861 4703  Q 3103 4656 3366 4563  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-34\" d=\"M 2419 4116  L 825 1625  L 2419 1625  L 2419 4116  z M 2253 4666  L 3047 4666  L 3047 1625  L 3713 1625  L 3713 1100  L 3047 1100  L 3047 0  L 2419 0  L 2419 1100  L 313 1100  L 313 1709  L 2253 4666  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"ArialMT-3e\" d=\"M 3384 2003  L 350 706  L 350 1266  L 2753 2263  L 350 3250  L 350 3809  L 3384 2528  L 3384 2003  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_28\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(80.16471 39.22909)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_29\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(82.062478 21.987458)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-31\" d=\"M 2384 0  L 1822 0  L 1822 3584  Q 1619 3391 1289 3197  Q 959 3003 697 2906  L 697 3450  Q 1169 3672 1522 3987  Q 1875 4303 2022 4600  L 2384 4600  L 2384 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_30\">\n",
       "    <!-- &lt;${\\mathit{float64}}$&gt; -->\n",
       "    <g transform=\"translate(68.1499 51.976347)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_31\">\n",
       "    <!-- 2k -->\n",
       "    <g transform=\"translate(138.41991 39.22909)rotate(-90)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-32\"/>\n",
       "     <use xlink:href=\"#ArialMT-6b\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_32\">\n",
       "    <!-- 1 -->\n",
       "    <g transform=\"translate(140.317678 21.987458)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_33\">\n",
       "    <!-- &lt;${\\mathit{float32}}$&gt; -->\n",
       "    <g transform=\"translate(126.4051 51.976347)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-32\" d=\"M 1228 531  L 3431 531  L 3431 0  L 469 0  L 469 531  Q 828 903 1448 1529  Q 2069 2156 2228 2338  Q 2531 2678 2651 2914  Q 2772 3150 2772 3378  Q 2772 3750 2511 3984  Q 2250 4219 1831 4219  Q 1534 4219 1204 4116  Q 875 4013 500 3803  L 500 4441  Q 881 4594 1212 4672  Q 1544 4750 1819 4750  Q 2544 4750 2975 4387  Q 3406 4025 3406 3419  Q 3406 3131 3298 2873  Q 3191 2616 2906 2266  Q 2828 2175 2409 1742  Q 1991 1309 1228 531  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-66\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6c\" transform=\"translate(93.603516 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6f\" transform=\"translate(121.386719 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-61\" transform=\"translate(182.568359 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(243.847656 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" transform=\"translate(283.056641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" transform=\"translate(346.679688 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(410.302734 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_34\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(215.414719 21.987458)scale(0.09 -0.09)\">\n",
       "     <defs>\n",
       "      <path id=\"ArialMT-6d\" d=\"M 422 0  L 422 3319  L 925 3319  L 925 2853  Q 1081 3097 1340 3245  Q 1600 3394 1931 3394  Q 2300 3394 2536 3241  Q 2772 3088 2869 2813  Q 3263 3394 3894 3394  Q 4388 3394 4653 3120  Q 4919 2847 4919 2278  L 4919 0  L 4359 0  L 4359 2091  Q 4359 2428 4304 2576  Q 4250 2725 4106 2815  Q 3963 2906 3769 2906  Q 3419 2906 3187 2673  Q 2956 2441 2956 1928  L 2956 0  L 2394 0  L 2394 2156  Q 2394 2531 2256 2718  Q 2119 2906 1806 2906  Q 1569 2906 1367 2781  Q 1166 2656 1075 2415  Q 984 2175 984 1722  L 984 0  L 422 0  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_35\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(208.5405 34.717047)scale(0.07 -0.07)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-Oblique-69\" d=\"M 1172 4863  L 1747 4863  L 1606 4134  L 1031 4134  L 1172 4863  z M 909 3500  L 1484 3500  L 800 0  L 225 0  L 909 3500  z \" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-Oblique-6e\" d=\"M 3566 2113  L 3156 0  L 2578 0  L 2988 2091  Q 3016 2238 3031 2350  Q 3047 2463 3047 2528  Q 3047 2791 2881 2937  Q 2716 3084 2419 3084  Q 1956 3084 1622 2776  Q 1288 2469 1184 1941  L 800 0  L 225 0  L 903 3500  L 1478 3500  L 1363 2950  Q 1603 3253 1940 3418  Q 2278 3584 2650 3584  Q 3113 3584 3367 3334  Q 3622 3084 3622 2631  Q 3622 2519 3608 2391  Q 3594 2263 3566 2113  z \" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_36\">\n",
       "    <!-- 1m -->\n",
       "    <g transform=\"translate(275.678719 21.987458)scale(0.09 -0.09)\">\n",
       "     <use xlink:href=\"#ArialMT-31\"/>\n",
       "     <use xlink:href=\"#ArialMT-6d\" x=\"55.615234\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"text_37\">\n",
       "    <!-- &lt;${\\mathit{int64}}$&gt; -->\n",
       "    <g transform=\"translate(268.8045 34.717047)scale(0.07 -0.07)\">\n",
       "     <use xlink:href=\"#ArialMT-3c\" transform=\"translate(0 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-69\" transform=\"translate(58.398438 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-6e\" transform=\"translate(86.181641 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-Oblique-74\" transform=\"translate(149.560547 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-36\" transform=\"translate(188.769531 0.015625)\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-34\" transform=\"translate(252.392578 0.015625)\"/>\n",
       "     <use xlink:href=\"#ArialMT-3e\" transform=\"translate(316.015625 0.015625)\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p226797e08c\">\n",
       "   <rect x=\"0\" y=\"4.931209\" width=\"302.2686\" height=\"41.491069\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>"
      ],
      "text/plain": [
       "<IPython.core.display.SVG object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "view = tsensor.pyviz(\"W @ b + x * 3 + h.dot(h)\")\n",
    "view.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
